Chia sẻ thông tin về Linux, C, PHP, 8051, ARM Cortex M3
NẾU AI NÓI XẤU BẠN MÀ NÓI ĐÚNG THÌ HÃY SỬA MÌNH ĐI. NẾU HỌ NÓI BẬY THÌ BẠN HÃY CƯỜI THÔI =EPICTETE=
THỨ NĂM, NGÀY 02 THÁNG HAI NĂM 2012
Sử dụng nfs trong Linux
nfs là một giao thức khá cũ nhưng do nó đơn giản và được hỗ trợ tốt của Linux nên vẫn được sử dụng. Nó thường được dùng làm ổ đĩa mạng và để cài hệ điều hành Linux qua mạng với thêm sự hỗ trợ từ PXE.
1. Cài đặt
Tuy nfs nằm trong kernel nhưng theo mặc định thì phần lớn các bản phân phối Linux dành cho Desktopkhông cài sẵn, chỉ có bản server là thường sẵn có. Việc cài đặt cũng tương đối đơn giản:
2. Cấu hình
nfs sử dụng file cấu hình chính là /etc/exports. Ngoài ra còn các file cấu hình dùng chung với các dịch vụ mạng khác là /etc/hosts.deny và /etc/hosts.allow để điều khiển việc truy cập.
Cú pháp của nó khá đơn giản
Sử dụng dòng lệnh
3. Khởi động dịch vụ nfs
4. Sử dụng trên máy khách
Nếu là máy chạy Linux thì cũng khá đơn giản vì sử dụng lệnh mount quen thuộc
Nếu muốn gắn tự động khi khởi động bạn hãy thêm dòng sau vào /etc/fstab
Để sử dụng trên Windows, bạn có thể sử dụng một số phần mềm, sau đây là hai trong số chúng:
Phải học nhiều, học hết sức mình và luôn luôn sẵn sàng ủng hộ những sự nghiệp chính nghĩa.
CHÊ CHÊ VARA
=Hết=
1. Cài đặt
Tuy nfs nằm trong kernel nhưng theo mặc định thì phần lớn các bản phân phối Linux dành cho Desktopkhông cài sẵn, chỉ có bản server là thường sẵn có. Việc cài đặt cũng tương đối đơn giản:
# Fedora
$ sudo yum install nfs-utils
# Ubuntu 10.04
$ sudo apt-get install nfs-kernel-server nfs-common
2. Cấu hình
nfs sử dụng file cấu hình chính là /etc/exports. Ngoài ra còn các file cấu hình dùng chung với các dịch vụ mạng khác là /etc/hosts.deny và /etc/hosts.allow để điều khiển việc truy cập.
$ nano /etc/exports
/home/fedora 129.168.1.3(ro,sync) myclient(rw,sync)
/var/nfs/pub *(ro,sync)
Cú pháp của nó khá đơn giản
- Cột thứ nhất là tên thư mục cần chia sẻ
- Cột thứ hai bao gồm tên (hoặc địa chỉ) các máy khách được phép truy cập theo sau là các tùy chọn
$ man exports
Sử dụng dòng lệnh
$ sudo exportfs -v 192.168.1.0/24:/var/tftpboot/fedoraDVD
$ man exportfs # để có thêm chi tiết
3. Khởi động dịch vụ nfs
$ sudo /sbin/service nfs start # khởi động
$ sudo /sbin/service nfs reload # tải lại exports
# Ubuntu
$ sudo /etc/init.d/nfs-kernel-server start
$ sudo service nfs-kernel-server reload
4. Sử dụng trên máy khách
Nếu là máy chạy Linux thì cũng khá đơn giản vì sử dụng lệnh mount quen thuộc
$ sudo mkdir /mnt/nfsdir # tạo thư mục để gắn
$ sudo mount.nfs 192.168.1.3:/home/fedora /mnt/nfsdir # hay
$ sudo mount -t nfs 192.168.1.3:/home/fedora /mnt/nfsdir
Nếu muốn gắn tự động khi khởi động bạn hãy thêm dòng sau vào /etc/fstab
nfs-server:/home/fedora /mnt/nfs_share nfs rw,rsize=8192,wsize=8192,timeo=14,intr
Để sử dụng trên Windows, bạn có thể sử dụng một số phần mềm, sau đây là hai trong số chúng:
- Cách thứ nhất là sử dụng "Windows Services for UNIX" http://support.microsoft.com/kb/324055
- Cách khác là sử dụng http://code.google.com/p/nekodrive/
- http://kythuatmaytinh.wordpress.com/2011/03/03/nfs-simple-how-to/
- http://nfs.sourceforge.net/nfs-howto/
- https://help.ubuntu.com/10.04/serverguide/C/network-file-system.html
- https://help.ubuntu.com/community/SettingUpNFSHowTo
- https://help.ubuntu.com/community/NFSv4Howto
- http://fconfig.wordpress.com/2006/08/17/setting-up-a-fedora-nfs-server/
Phải học nhiều, học hết sức mình và luôn luôn sẵn sàng ủng hộ những sự nghiệp chính nghĩa.
CHÊ CHÊ VARA
=Hết=
THỨ BA, NGÀY 31 THÁNG MỘT NĂM 2012
Cài đặt máy chủ email trong Linux
Một máy chủ thư điện tử cần có hai dịch vụ là gửi thư và giúp người dùng nhận thư.
I. Máy chủ để gửi thư Fostfix
Fostfix sử dụng giao thức SMTP.
1. Cài đặt
2. Cấu hình Postfix
Sửa /etc/postfix/main.cf ở một số dòng sau:
Chú ý: bạn nhớ bỏ dòng "inet_interfaces = localhost" đi nếu không sẽ không thể sử dụng máy khác để gửi được.
3. Khởi động postfix
Chú ý:
Dovecot hỗ trợ một số giao thức như pop3, imap v.v..
1. Cài đặt
2. Cấu hình
Dovecot sử dụng file cấu hình chính /etc/dovecot/dovecot.conf, và còn sử dụng thêm một số file khác nữa.
3. Khởi động dịch vụ dovecot
Chú ý: cũng giống như postfix, dịch vụ này cũng dùng cùng file nhật ký là /var/log/maillog. Nếu có sai sót khi vận hành, bạn đọc nó để biết chi tiết.
III. Trình máy khách
1. Chương trình mail
Đây là chương trình sẵn có trong phần lớn các bản phân phối Linux. Để sử dụng được nó, yêu cầu máy phải sẵn có dịch vụ smtp, có thể đơn giản chỉ cần sendmail hay tốt hơn là postfix.
Thực hiện lệnh sau, thay thế bằng địa chỉ email thích hợp.
Sau khi gõ lệnh trên bạn sẽ nhập nội dung của thư. Kết thúc việc nhập nội dung bằng Ctrl+D.
Các tùy chọn hay dùng của lệnh mail:
Lệnh mail thường dùng với mục đích gửi thư tự động. Sau đây là một số cách sử dụng:
2. Sử dụng mutt
Để tránh hạn chế của lệnh mail là không thể đính kèm bạn có thể sử dụng mutt:
3. Sử dụng các chương trình gửi nhận email có giao diện đồ họa
Ôn lại những điều đã học để biết thêm điều mới, người đó có thể làm thầy thiên hạ.
KHỒNG TỬ
=Hết=
I. Máy chủ để gửi thư Fostfix
Fostfix sử dụng giao thức SMTP.
1. Cài đặt
$ sudo yum install postfix
$ sudo apt-get install postfix
2. Cấu hình Postfix
Sửa /etc/postfix/main.cf ở một số dòng sau:
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
Chú ý: bạn nhớ bỏ dòng "inet_interfaces = localhost" đi nếu không sẽ không thể sử dụng máy khác để gửi được.
3. Khởi động postfix
$ sudo service postfix start # hay:
$ sudo /etc/init.d/postfix start
Chú ý:
- Bạn cần tắt các dịch vụ có cùng giao thức smtp đi như sendmaild chẳng hạn.
- Nếu bạn gặp trục trặc nào có thể tìm trong /var/log/maillog.
- Postfix sử dụng cùng tài khoản với Linux.
Dovecot hỗ trợ một số giao thức như pop3, imap v.v..
1. Cài đặt
$ sudo yum install dovecot
$ sudo apt-get install dovecot
2. Cấu hình
Dovecot sử dụng file cấu hình chính /etc/dovecot/dovecot.conf, và còn sử dụng thêm một số file khác nữa.
$ sudo nano /etc/dovecot/dovecot.conf
protocols = pop3 imap lmtp
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
$ sudo nano /etc/dovecot/conf.d/20-pop3.conf
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
3. Khởi động dịch vụ dovecot
$ sudo service dovecot start
Chú ý: cũng giống như postfix, dịch vụ này cũng dùng cùng file nhật ký là /var/log/maillog. Nếu có sai sót khi vận hành, bạn đọc nó để biết chi tiết.
III. Trình máy khách
1. Chương trình mail
Đây là chương trình sẵn có trong phần lớn các bản phân phối Linux. Để sử dụng được nó, yêu cầu máy phải sẵn có dịch vụ smtp, có thể đơn giản chỉ cần sendmail hay tốt hơn là postfix.
Thực hiện lệnh sau, thay thế bằng địa chỉ email thích hợp.
$ mail -s "Hello world" you@example.com
Sau khi gõ lệnh trên bạn sẽ nhập nội dung của thư. Kết thúc việc nhập nội dung bằng Ctrl+D.
Các tùy chọn hay dùng của lệnh mail:
-s "chủ đề" (Tiêu đề của thư)
-c "Địa chỉ email" (CC)
-b "Địa chỉ email" (BCC)
Lệnh mail thường dùng với mục đích gửi thư tự động. Sau đây là một số cách sử dụng:
$ echo "Đây là nội dung của thư" | mail -s "Kiểm tra hoạt động của thư" you@example.com
$ df -h | mail -s "Xem dung lượng đĩa" you@example.com
$ mail -s "Nhật ký máy chủ" you@example.com < /home/tên_bạn/nhật-ký-hệ-thống.log
2. Sử dụng mutt
Để tránh hạn chế của lệnh mail là không thể đính kèm bạn có thể sử dụng mutt:
- $ echo "Gửi tệp tin đính kèm." | mutt -a backup.zip -s "Đính kèm backup.zip" you@example.com
3. Sử dụng các chương trình gửi nhận email có giao diện đồ họa
- http://www.mozilla.org/en-US/thunderbird/download
- Outlook Express
- Microsoft Outlook
- http://www.linuxmail.info/postfix-smtp-server-howto-centos-6/
- http://www.exim.org/
- Dành cho Windows http://www.hmailserver.com/
Ôn lại những điều đã học để biết thêm điều mới, người đó có thể làm thầy thiên hạ.
KHỒNG TỬ
=Hết=
CHỦ NHẬT, NGÀY 29 THÁNG MỘT NĂM 2012
Chỉ định khóa riêng khi sử dụng Git
Khi phải quản lý nhiều máy chủ khác nhau, có người sẽ muốn mình dùng các cặp khóa công khác nhau cho từng máy. Nếu chỉ truy cập shell thì bạn có thể dùng tùy chọn -i. Nhưng nếu bạn dùng Git qua ssh thì không đơn giản thế. Cách giải quyết là cấu hình cho ssh để nó biết cần sử dụng khóa nào cho các địa chỉ tương ứng.
Dưới đây là ví dụ tôi sử dụng file khóa riêng ~/.ssh/id_rsa_for_github thay vì id_rsa như mặc định. Mỗi khi truy cập github.com thì khóa này sẽ được sử dụng.
Bạn sửa file ~/.ssh/config
Chú ý: Bạn có thể đặt tên host khác với domain, nhưng khi sử dụng url bạn phải sử dụng tên đã đặt thay vì domain. Ví dụ nếu bạn đặt tên cho host ở đây là gh thay vì github.com bạn sẽ sử dụng lệnh sau:
Cách này rất hiệu quả khi một máy chủ có thể sử dụng nhiều cặp khóa khác nhau, bạn chỉ cần đặt tên khác nhau.
Để tạo khóa riêng bạn gõ lệnh sau:
Tham khảo thêm:
Ngay cả trí tuệ thông minh nhất vẫn còn có điều phải học.
G. XAN-TAI.AN-NA
=Hết=
Dưới đây là ví dụ tôi sử dụng file khóa riêng ~/.ssh/id_rsa_for_github thay vì id_rsa như mặc định. Mỗi khi truy cập github.com thì khóa này sẽ được sử dụng.
Bạn sửa file ~/.ssh/config
# Default GitHub user (yourusername)
Host github.com
HostName github.com
AddressFamily any
User yourusername
IdentityFile ~/.ssh/id_rsa_for_github
Chú ý: Bạn có thể đặt tên host khác với domain, nhưng khi sử dụng url bạn phải sử dụng tên đã đặt thay vì domain. Ví dụ nếu bạn đặt tên cho host ở đây là gh thay vì github.com bạn sẽ sử dụng lệnh sau:
$ git clone ssh://hg/yourusername/tên_kho
Cách này rất hiệu quả khi một máy chủ có thể sử dụng nhiều cặp khóa khác nhau, bạn chỉ cần đặt tên khác nhau.
Để tạo khóa riêng bạn gõ lệnh sau:
$ ssh-keygen -t rsa -b 2048 -C "Khóa dành cho Github.com" -f ~/.ssh/id_rsa_for_github
Tham khảo thêm:
- http://smallsoftware.blogspot.com/2011/08/tao-khoa-rsa-va-dsa-su-dung-openssh.html
- http://smallsoftware.blogspot.com/2011/10/bao-mat-cho-may-chu-openssh.html
Ngay cả trí tuệ thông minh nhất vẫn còn có điều phải học.
G. XAN-TAI.AN-NA
=Hết=
THỨ HAI, NGÀY 16 THÁNG MỘT NĂM 2012
Sử dụng samba để chia sẻ file với Windows
1. Giới thiệu
Với sự thống trị của Windows trên dòng máy tính cá nhân, việc chia sẻ tài nguyên giữa các máy tính chạy hệ điều hành khác với nó là cần thiết. Thế mới thấy "Thế giới không phẳng", cái bóng của Windows quá lớn. Gói phần mềm giúp Linux có thể thực hiện điều này là Samba. Nó sử dụng giao thức của hệ điều hànhWindowns.
2. Cài đặt
Samba gồm hai phần là client và server. Phần lớn các bản Desktop có cài sẵn client và bản server thì cài sẵn cả hai.
3. Cấu hình
Thông thường file cấu hình cho nó thường ở /etc/samba/smb.conf hay /usr/local/samba/lib/smb.conf. Bạn có thể tìm chính xác nó ở đâu bằng lệnh:
Cấu hình cho samba bao gồm hai phần: một phần cho daemon và các tài khoản.
Nhìn chung thì cấu hình cho samba gồm hai chương, tên của chúng được đặt trong cặp dấu ngoặc vuông: phần cấu hình chung [global] và cấu hình các thư mục cần sử dụng.
Phần Share, đây là phần cấu hình thư mục nào cần chia sẻ, máy in nào được sử dụng v.v..
Chú ý:
Nhìn chung, cú pháp cấu hình cho samba cũng tương đối đơn giản. Nếu là bản Desktop bạn có thể chia sẻ một thư mục nào đó một cách dễ dàng trong cửa sổ Nautilus.
Kiểm tra file cấu hình:
Nếu ổn thì khởi động samba:
Trong cửa sổ của Explore của Windows hãy gõ:
Ở bước này bạn chỉ có thể thử. Muốn đăng nhập vào hệ thống, bạn cần thực hiện bước tiếp sau
4. Quản trị các tài khoản
samba-server không sử dụng chung tài khoản với Linux nhưng bạn có thể tạo các tài khoản có cùng hay khác tên và ánh xạ nó đến tài khoản trên Linux, mật khẩu bạn cũng phải đặt mới. Bảng ánh xạ bạn có thể tìm thấy tại:
Thư mục này lưu giữ thông tin người dùng
Thêm tài khoản vào:
Giờ thì trong cửa sổ của Explore của Windows bạn đã có thể truy cập vào tài khoản của mình:
5. Quản lý samba bằng SWAT
Ứng dụng này hoạt động trên nền Web nên rất trực quan.
6. Một số dịch vụ mà samba phụ thuộc
Những người khôn khéo không gom đống các kiến thức mà tuyển chọn chúng.
DE LAMBERT
=Hết=
Với sự thống trị của Windows trên dòng máy tính cá nhân, việc chia sẻ tài nguyên giữa các máy tính chạy hệ điều hành khác với nó là cần thiết. Thế mới thấy "Thế giới không phẳng", cái bóng của Windows quá lớn. Gói phần mềm giúp Linux có thể thực hiện điều này là Samba. Nó sử dụng giao thức của hệ điều hànhWindowns.
2. Cài đặt
Samba gồm hai phần là client và server. Phần lớn các bản Desktop có cài sẵn client và bản server thì cài sẵn cả hai.
$ sudo aptitude install libcupsys2 samba samba-common
3. Cấu hình
Thông thường file cấu hình cho nó thường ở /etc/samba/smb.conf hay /usr/local/samba/lib/smb.conf. Bạn có thể tìm chính xác nó ở đâu bằng lệnh:
$ smbd -b | grep smb.conf
Cấu hình cho samba bao gồm hai phần: một phần cho daemon và các tài khoản.
Nhìn chung thì cấu hình cho samba gồm hai chương, tên của chúng được đặt trong cặp dấu ngoặc vuông: phần cấu hình chung [global] và cấu hình các thư mục cần sử dụng.
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
...
security = share
passdb backend = tdbsam
Phần Share, đây là phần cấu hình thư mục nào cần chia sẻ, máy in nào được sử dụng v.v..
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
printable = yes
Chú ý:
- [homes] ở đây cũng là một chương đặc biệt.
- Bạn sẽ thấy một số ký tự có sử dụng dấu %, đây là các biến, do samba điền vào cho chúng ta. Xem chi tiết cách cấu hình trong manpage:
$ man smb.conf
Nhìn chung, cú pháp cấu hình cho samba cũng tương đối đơn giản. Nếu là bản Desktop bạn có thể chia sẻ một thư mục nào đó một cách dễ dàng trong cửa sổ Nautilus.
Kiểm tra file cấu hình:
$ testparm /etc/samba/smb.conf
$ testparm -s smb.conf.master > smb.conf
Nếu ổn thì khởi động samba:
$ sudo /etc/init.d/smb start # khởi động samba-server
# hay:
$ sudo service smb start
#Nếu samba đã khởi động rồi bạn chỉ muốn load lại conf:
$ sudo service smb reload
$ ps -A | grep smbd # kiểm tra xem nó hoạt động chưa
$ smbclient -L yourhostname # mật khẩu để trống
Trong cửa sổ của Explore của Windows hãy gõ:
\\yourhostname\
Ở bước này bạn chỉ có thể thử. Muốn đăng nhập vào hệ thống, bạn cần thực hiện bước tiếp sau
4. Quản trị các tài khoản
samba-server không sử dụng chung tài khoản với Linux nhưng bạn có thể tạo các tài khoản có cùng hay khác tên và ánh xạ nó đến tài khoản trên Linux, mật khẩu bạn cũng phải đặt mới. Bảng ánh xạ bạn có thể tìm thấy tại:
$ more /etc/samba/smbuser
$ smbd -b | grep PRIVATE_DIR
PRIVATE_DIR: /var/lib/samba/private
Thư mục này lưu giữ thông tin người dùng
$ ls /var/lib/samba/private
passdb.tdb secrets.tdb
$ smbd -b | grep LOCKDIR
Thêm tài khoản vào:
$ smbpasswd -a fedora
# các tài khoản cần có sẵn trong hệ điều hành,
# nếu không hãy sử dụng useradd để thêm
# để đổi password bạn chỉ cần bỏ tùy chọn -a đi.
$ smbpasswd fedora
Giờ thì trong cửa sổ của Explore của Windows bạn đã có thể truy cập vào tài khoản của mình:
\\yourhostname\your_samba_account
5. Quản lý samba bằng SWAT
Ứng dụng này hoạt động trên nền Web nên rất trực quan.
6. Một số dịch vụ mà samba phụ thuộc
- nmbd: daemon này xử lý và phân giải các tên đã được đăng ký. Đây là phương tiện để duyệt trên mạng. Dịch vụ này cần được khởi động trước smb.
- smbd: đây là dịch vụ chính, nó dùng để chia sẻ tệp tin và máy in.
- winbindd: giúp Linux tham gia vào Windows NT4 hay ADS domain.
- http://www.samba.org/samba/docs/Samba-Guide.pdf
- http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
- http://www.samba.org/samba/docs/using_samba/toc.html
- http://khigiacmoquayve.narod.ru/vietbook/linux/samba/index.html
- http://www.brennan.id.au/18-Samba.html
- http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html
- http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch10_:_Windows,_Linux,_and_Samba
Những người khôn khéo không gom đống các kiến thức mà tuyển chọn chúng.
DE LAMBERT
=Hết=
CHỦ NHẬT, NGÀY 08 THÁNG MỘT NĂM 2012
Viết manpage cho phần mềm
Sau khi viết phần mềm cho Linux, bạn cần phải viết phần trợ giúp cho nó nữa. Với giao diện dòng lệnh, người ta thường dùng manpage.
1. Định dạng của manpage
Một số từ khóa cơ bản
Giải thích chi tiết
Cú pháp .TH là:
Cú pháp của .SH là:
Một số chương thường hay được dùng theo phong cách chuẩn của Unix, tuy đây không phải là bắt buộc:
2. Định dạng kiểu chữ
3. Liên kết đến mapage khác
Một số hệ điều hành, phần mềm không chọn cách này mà sử dụng liên kết mềm, bạn cần cẩn thận khi nén toàn bộ các thư mục này lại vì nó có thể làm 'gẫy' liên kết.
4. Chú ý
Muốn xây dựng thì phải có tri thức, phải nắm được khoa học, mà muốn có tri thức thì phải học tập.
I.XTA LIN
=Hết=
1. Định dạng của manpage
Một số từ khóa cơ bản
.TH -> Tiêu đề của manpage
.SH -> Đầu đề của chương
.PP -> Tạo dòng trắng
." -> Ghi chú thích
.TP -> Thụt đầu dòng (áp dụng cho hai dòng kế tiếp sau)
Giải thích chi tiết
Cú pháp .TH là:
.TH [Tên chương trình] [số chương] [chân trang ở giữa] [chân trang bên trái] [giữa phần đầu trang]
Cú pháp của .SH là:
.SH Tên của chương
Một số chương thường hay được dùng theo phong cách chuẩn của Unix, tuy đây không phải là bắt buộc:
NAME Tên của hàm hay lệnh.Cú pháp của .PP rất đơn giản, nó chỉ tạo ngắt dòng.
SYNOPSIS Cách dùng.
DESCRIPTION Mô tả.
OPTIONS Chứa các tùy chọn và tham số.
RETURN VALUES Giá trị trả về.
ENVIRONMENT Mô tả các biến.
FILES Các tệp tin có liên quan.
EXAMPLES Ví dụ và gợi ý.
DIAGNOSTICS Thường dùng với chương 4.
ERRORS Dùng với chương 2 và 3 của manpage.
TIPS Mẹo vặt khi dùng
AUTHOR Tác giả
SEE ALSO Tham khảo thêm các phần có liên quan.
2. Định dạng kiểu chữ
.B Chữ ĐẬM
.BI Chữ đậm và nghiêng xen kẽ nhau
.BR Đậm xen kẽ với Roman
.I Nghiêng
.IB Nghiêng xen kẽ với đậm
.IR Nghiêng xen kẽ với Roman
.RB Roman xen kẽ với đậm
.RI Roman xen kẽ với nghiêng
.SM Nhỏ (thu nhỏ còn 9/10 kích thước thông thường)
.SB Nhỏ và đậm (không phải xen kẽ nhau)
3. Liên kết đến mapage khác
.so man1/foo.1
Một số hệ điều hành, phần mềm không chọn cách này mà sử dụng liên kết mềm, bạn cần cẩn thận khi nén toàn bộ các thư mục này lại vì nó có thể làm 'gẫy' liên kết.
4. Chú ý
- Nếu có dấu cách bạn sử dụng dấu ngoặc kép để trích dẫn. Định dạng của nó cũng chấp nhận sử dụng \ để thoát chuỗi.
- Bạn không thể ngắt dòng bằng cách xuống dòng như thông thường. Bạn viết trên hai dòng riêng biệt nhưng nó chỉ coi đó như là một dòng.
- Các từ khóa phải viết ở đầu dòng
- Phần lớn các manpage đều được nén lại để tiết kiệm ổ đĩa. Để đọc nó bạn cần sử dụng lệnh zcat. ví dụ:
$ zcat /usr/share/man/man1/man.1.gz | more
- Bạn còn có thể viết manpage bằng định dạng text thường. Với kiểu này bạn có thể đặt chúng tại /usr/share/man/cat1/ hay đặt tại thư mục như bình thường. Lợi thế của nó là đơn giản khi viết nhưng trình bày không được đẹp mắt như định dạng manpage.
- http://www.linuxfocus.org/English/November2003/article309.shtml
- http://www.schweikhardt.net/man_page_howto.html
- http://www.gnu.org/software/groff/
Muốn xây dựng thì phải có tri thức, phải nắm được khoa học, mà muốn có tri thức thì phải học tập.
I.XTA LIN
=Hết=
THỨ BA, NGÀY 03 THÁNG MỘT NĂM 2012
RAID trên Linux
I. Giới thiệu
Trong một số hệ thống, phần lưu trữ dữ liệu cần được thiết kế đặc biệt với mục đích như là chịu lỗi cao, tốc độ lớn và dung lượng cực lớn. Đây chính là lúc cần đến RAID.
Trong Linux, mdadm là công cụ quản lý chuẩn để tạo RAID có thể tìm thấy trong hầu hết các bản phân phối hiện nay. Nếu máy tính chưa cài sẵn, bạn hãy cài đặt chúng như sau:
Đọc manpage là một thói quen tốt!
Load module, nếu cảm thấy cần thiết:
mdadm có bảy chức năng. Nhưng chỉ có một số thao tác hay được sử dụng là 'create', 'assemble' và 'monitor'.
Từ mềm ở đây ám chỉ sử dụng phần mềm chứ không phải phần cứng, do vậy máy tính của bạn không cần có thiết bị RAID. Sử dụng RAID mềm còn có một lợi thế khác là bạn sử dụng các phân vùng tham gia vào mảng đĩa thay vì sử dụng toàn bộ ổ đĩa, làm cho việc sử dụng nó trở nên linh hoạt.
Cú pháp chung:
1. Chế độ Linear
Ví dụ dưới đây sẽ tạo ra thiết bị RAID là /dev/md0 với sự tham gia của hai phân vùng /dev/sdb1 và/dev/sdc2. Thiết bị này được ghi lần lượt từng cái một do đó chúng ta không có lợi gì về tốc độ, nhưng dung lượng sẽ bằng tổng dữ liệu của cả hai phân vùng, bất kể nó có bằng nhau hay không. Ngoài ra, có một lợi thế nữa là một đĩa hỏng thì đĩa còn lại vẫn giữ được dữ liệu trên đĩa đó.
2. Chế độ RAID-0
Chế độ này chia các file thành các phần nhỏ và phân phối chúng trên các đĩa. Chế độ này, tốc độ đọc ghi cao nhưng nếu có hỏng hóc từ một đĩa, dữ liệu bị mất hoàn toàn.
3. Chế độ RAID-1
Chế độ này, hai ổ đĩa có nội dung hoàn toàn giống nhau, do đó độ an toàn cho dữ liệu là rất cao.
4. Chế độ RAID-4/5/6
Nếu bạn sử dụng N ổ đĩa (hay phân vùng) và cái nhỏ nhất có kích thước là S, kích thước của toàn bộ mảng ổ đĩa này sẽ là (N-1)*S. Vậy thì nếu bất kỳ một đĩa nào bị hỏng, tất cả dữ liệu vẫn còn. Nhưng nếu hai đĩa cùng hỏng thì dữ liệu sẽ bị mất. Bạn nên sử dụng các ổ đĩa hay phân vùng có cùng kích thước để tránh lãng phí.
Kích thước của mỗi "mảnh" dữ liệu phụ thuộc vào từng mục đích, 32 kB theo mặc định nhìn chung là ổn với các hệ thống thông thường. Những hệ thống có nhiều file nhỏ thì chọn kích thước này nhỏ và ngược lại.
Ví dụ tạo RAID-5:
5. Lưu lại cấu hình
Tệp tin lưu cấu hình ở tại các vị trí khác nhau tùy thuộc vào từng bản phân phối.
Chú ý: nếu bạn không lưu lại cấu hình thì khi khởi động hệ điều hành sẽ không tạo thiết bị RAID cho bạn. Sử dụng >> để nối thêm. Nếu sử dụng lệnh thứ hai, dữ liệu sẽ bị ghi đè, bạn nên cẩn thận.
III. Quản lý và theo dõi
Theo dõi:
Để quản lý bạn sử dụng --manage.
IV. Sử dụng
1. Bật và tắt mảng đĩa
Xem các mảng đĩa:
Tắt một thiết bị RAID dễ dàng theo cách sau:
Việc bật chúng lên lại không dễ dàng như vậy, bạn phải sử dụng lệnh --assemble như sau:
Bạn có thể sử dụng file cấu hình là /etc/mdadm.conf để bật chúng lên khi hệ điều hành khởi động như đã nói ở phần trên. Xem manpage để có thêm chi tiết:
Hay có thể dùng:
2. Định dạng
Lệnh đơn giản nhất là:
3. Gắn
Bạn gắn (mount) thủ công hay tự động sử dụng /etc/fstab. Nhìn chung cũng không khác gì một ổ đĩa bình thường.
Thêm dòng sau vào fstab:
Lời kết: Bài này chỉ dừng lại ở mức giới thiệu cơ bản về RAID trên Linux. Tôi sẽ cố gắng viết một bài khác chuyên sâu hơn.
V. Tham khảo
Đọc sách để giúp ta suy nghĩ. Chớ nên đọc sách để khỏi phải suy nghĩ - K. GiBran
=Hết=
Trong một số hệ thống, phần lưu trữ dữ liệu cần được thiết kế đặc biệt với mục đích như là chịu lỗi cao, tốc độ lớn và dung lượng cực lớn. Đây chính là lúc cần đến RAID.
Trong Linux, mdadm là công cụ quản lý chuẩn để tạo RAID có thể tìm thấy trong hầu hết các bản phân phối hiện nay. Nếu máy tính chưa cài sẵn, bạn hãy cài đặt chúng như sau:
# Debian, Ubuntu:
$ apt-get install mdadm
# Gentoo:
$ emerge mdadm
# RedHat, CentOS:
$ yum install mdadm
# từ mã nguồn, gói này có sẵn Makefile
$ tar xfv mdadm-3.2.tgz && cd mdadm-3.2
$ make && make install
Đọc manpage là một thói quen tốt!
$ man mdadm
Load module, nếu cảm thấy cần thiết:
$ modprobe raid456
mdadm có bảy chức năng. Nhưng chỉ có một số thao tác hay được sử dụng là 'create', 'assemble' và 'monitor'.
- Create: Tạo một thiết bị RAID mới
- Assemble: Tập hợp các thiết bị để tạo RAID.
- Follow hay Monitor: theo dõi thiết bị RAID. RAID0 hay Linear không never have missing, spare, hay các ổ đĩa hỏng, vì thế ở đây không có gì để theo dõi cả. Thông thường bạn thực hiện thao tác này sau khi khởi động.
- Build
- Grow : thay đổi kích thước của mảng. Hiện tại nó hỗ trợ thay đổi kích thước cho RAID 1/4/5/6 và thay đổi số thiết bị trong RAID1.
- Manage: thực hiện các thao tác với các thành phần của mảng như là thêm ổ đĩa và gỡ bỏ thiết bị sai hỏng.
- Misc: thực hiện các thao tác khác như tẩy xóa các superblock cũ, thu thập thông tin.
Từ mềm ở đây ám chỉ sử dụng phần mềm chứ không phải phần cứng, do vậy máy tính của bạn không cần có thiết bị RAID. Sử dụng RAID mềm còn có một lợi thế khác là bạn sử dụng các phân vùng tham gia vào mảng đĩa thay vì sử dụng toàn bộ ổ đĩa, làm cho việc sử dụng nó trở nên linh hoạt.
Cú pháp chung:
$ mdadm --create /dev/md0 <chế độ> <tùy chọn> <danh sách các thiết bị tham gia>
1. Chế độ Linear
Ví dụ dưới đây sẽ tạo ra thiết bị RAID là /dev/md0 với sự tham gia của hai phân vùng /dev/sdb1 và/dev/sdc2. Thiết bị này được ghi lần lượt từng cái một do đó chúng ta không có lợi gì về tốc độ, nhưng dung lượng sẽ bằng tổng dữ liệu của cả hai phân vùng, bất kể nó có bằng nhau hay không. Ngoài ra, có một lợi thế nữa là một đĩa hỏng thì đĩa còn lại vẫn giữ được dữ liệu trên đĩa đó.
$ mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc2
--level: chế độ raid
--raid-devices: số thiết bị tham gia raid
2. Chế độ RAID-0
Chế độ này chia các file thành các phần nhỏ và phân phối chúng trên các đĩa. Chế độ này, tốc độ đọc ghi cao nhưng nếu có hỏng hóc từ một đĩa, dữ liệu bị mất hoàn toàn.
$ mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb2 /dev/sdc2
3. Chế độ RAID-1
Chế độ này, hai ổ đĩa có nội dung hoàn toàn giống nhau, do đó độ an toàn cho dữ liệu là rất cao.
$ mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
$ mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1
--spare-devices: thiết bị dự phòng
4. Chế độ RAID-4/5/6
Nếu bạn sử dụng N ổ đĩa (hay phân vùng) và cái nhỏ nhất có kích thước là S, kích thước của toàn bộ mảng ổ đĩa này sẽ là (N-1)*S. Vậy thì nếu bất kỳ một đĩa nào bị hỏng, tất cả dữ liệu vẫn còn. Nhưng nếu hai đĩa cùng hỏng thì dữ liệu sẽ bị mất. Bạn nên sử dụng các ổ đĩa hay phân vùng có cùng kích thước để tránh lãng phí.
Kích thước của mỗi "mảnh" dữ liệu phụ thuộc vào từng mục đích, 32 kB theo mặc định nhìn chung là ổn với các hệ thống thông thường. Những hệ thống có nhiều file nhỏ thì chọn kích thước này nhỏ và ngược lại.
Ví dụ tạo RAID-5:
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
5. Lưu lại cấu hình
Tệp tin lưu cấu hình ở tại các vị trí khác nhau tùy thuộc vào từng bản phân phối.
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
$ mdadm --detail --scan | tee /etc/mdadm.conf # chỉ dùng lần đầu
Chú ý: nếu bạn không lưu lại cấu hình thì khi khởi động hệ điều hành sẽ không tạo thiết bị RAID cho bạn. Sử dụng >> để nối thêm. Nếu sử dụng lệnh thứ hai, dữ liệu sẽ bị ghi đè, bạn nên cẩn thận.
III. Quản lý và theo dõi
Theo dõi:
$ mdadm --monitor /dev/md0
Để quản lý bạn sử dụng --manage.
IV. Sử dụng
1. Bật và tắt mảng đĩa
Xem các mảng đĩa:
$ cat /proc/mdstat
Tắt một thiết bị RAID dễ dàng theo cách sau:
$ mdadm --stop /dev/md0
Việc bật chúng lên lại không dễ dàng như vậy, bạn phải sử dụng lệnh --assemble như sau:
$ mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Bạn có thể sử dụng file cấu hình là /etc/mdadm.conf để bật chúng lên khi hệ điều hành khởi động như đã nói ở phần trên. Xem manpage để có thêm chi tiết:
$ man mdadm.conf
Hay có thể dùng:
$ mdadm --assemble --scan
2. Định dạng
Lệnh đơn giản nhất là:
$ mkfs -t ext3 /dev/md0
mke2fs 1.40.2 (12-Jul-2007)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
97920 inodes, 195792 blocks
9789 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=201326592
6 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840
...
3. Gắn
Bạn gắn (mount) thủ công hay tự động sử dụng /etc/fstab. Nhìn chung cũng không khác gì một ổ đĩa bình thường.
$ mount -t ext3 /dev/md0 /mnt/thư_mục_gắn
Thêm dòng sau vào fstab:
/dev/md0 /mnt/thư_mục_gắn/ ext3 defaults 0 0
$ sudo mount -a # gắn sử dụng cấu hình lưu trong /etc/fstab
Lời kết: Bài này chỉ dừng lại ở mức giới thiệu cơ bản về RAID trên Linux. Tôi sẽ cố gắng viết một bài khác chuyên sâu hơn.
V. Tham khảo
- https://raid.wiki.kernel.org/
- http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch26_:_Linux_Software_RAID
- http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- http://www.cse.unsw.edu.au/~neilb/source/mdadm/ (http://neil.brown.name/blog/)
Đọc sách để giúp ta suy nghĩ. Chớ nên đọc sách để khỏi phải suy nghĩ - K. GiBran
=Hết=
THỨ BẢY, NGÀY 31 THÁNG MƯỜI HAI NĂM 2011
Đồng bộ hóa dữ liệu sử dụng rsync
I. Giới thiệuTrong quản trị máy tính, nhiều lúc bạn cần phải đồng bộ hóa dữ liệu giữa các máy tính. Chẳng hạn như chuyển dữ liệu từ ổ cứng cũ đã đầy sang một ổ đĩa mới, tạo một bản sao cho máy tính để tạo các máy chủ chạy song song hay còn gọi là máy chủ mirror v.v.. Đây là lúc cần đến công cụ rsync.
Cài đặt
Nếu cài đặt từ mã nguồn bạn chạy lệnh:
II. Sử dụng
Cú pháp:
Sử dụng ':' để kết nối qua remote shell, trong khi '::' & 'rsync://' sử dụng qua giao thức rsync, và yêu cầu SRC hay DEST bắt đầu bằng tên của module. Ở ví dụ phần cài đặt máy chủ rsync ở dưới có tên là demo.
Các tùy chọn hay dùng:
1. Sử dụng rsync thay cho lệnh copy
Lệnh này có ưu điểm giữ nguyên các tham số của các tệp tin như owner, quyền v.v.. Nó cực kỳ hữu ích khi bạn cần chuyển dữ liệu sang ổ đĩa mới như chuyển /home sang ổ đĩa cứng mới chẳng hạn.
Cũng có cách sử dụng các lệnh khác để có được cùng kết quả, nhưng lại phức tạp hơn. Ví dụ:
2. rsync sử dụng giao thức nguyên bản
3. rsync qua ssh
Sử dụng cách này để thay cho scp.
Bạn thực sự không nên đặt tên các tệp tin và thư mục có khoảng trắng để tránh phiền toái khi sử dụng.
III. Cài đặt máy chủ rsync
1. Cấu hình
Mặc dù người ta thường sử dụng rsync qua ssh nhưng bạn vẫn có thể sử dụng cài máy chủ dịch vụ rsynctheo giao thức nguyên bản của nó. Trước tiên cần cấu hình file /etc/rsyncd.conf
Chú ý: Bạn nên chú ý đến uid, bởi vì cơ chế phân quyền trên Linux rất chặt chẽ, một số thư mục other không được phép đọc, bạn cần chắc chắn là thư mục /home/yourusername/Documents, other (cụ thể ở đây là nobody) được phép đọc. Nếu không bạn chuyển uid thành tên user sở hữu thư mục này hay cực đoan hơn là 'root'. Cũng cần xem manpage của rsyncd.conf
2. Chạy stand-alone
3. Chạy trên inetd
Thêm dòng này vào /etc/inetd.conf
4. Chạy trên xinetd
Chú ý bạn cũng nên kiểm tra thêm trong /etc/services để chắc là giao thức rsync đã sẵn có!
Chạy thử lệnh sau trên máy tính cài rsyncd bạn sẽ thấy thư mục NewDoc sẽ có nội dung của/home/yourusername/Documents:
5. Chạy trên ssh
Bạn chỉ cần cài và cấu hình openssh-server không cần phải cầu hình rsync.
IV. Tham khảo
Chúa chỉ giúp những ai biết cứu chính bản thân mình.
Câu này cũng giống như câu: "Khi gặp hoạn nạn hãy dựa vào chính mình".
=Hết=
Cài đặt
# CentOS, Fedora ...
$ sudo yum -y install rsync xinetd
# Ubuntu, Debian ...
$ sudo apt-get install rsync xinetd
Nếu cài đặt từ mã nguồn bạn chạy lệnh:
$ tar xfvz rsync-3.0.9.tar.gz
$ cd rsync-3.0.9
$ ./configure --prefix=/usr
$ make
$ sudo make install
II. Sử dụng
Cú pháp:
$ rsync --help
Usage: rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
Sử dụng ':' để kết nối qua remote shell, trong khi '::' & 'rsync://' sử dụng qua giao thức rsync, và yêu cầu SRC hay DEST bắt đầu bằng tên của module. Ở ví dụ phần cài đặt máy chủ rsync ở dưới có tên là demo.
Các tùy chọn hay dùng:
--delete : xóa các tệp tin khi nguồn không có (cần cẩn thận khi dùng)
-v : Chi tiết (dùng -vv để trình bày chi tiết hơn)
-e "ssh tùy-chọn" : chỉ định sử dụng ssh với các tùy chọn
-a : chế độ lưu trữ
-r : đệ qui
-z : nén dữ liệu để tiết kiệm băng thông
1. Sử dụng rsync thay cho lệnh copy
Lệnh này có ưu điểm giữ nguyên các tham số của các tệp tin như owner, quyền v.v.. Nó cực kỳ hữu ích khi bạn cần chuyển dữ liệu sang ổ đĩa mới như chuyển /home sang ổ đĩa cứng mới chẳng hạn.
$ rsync -av /NGUỒN/ /ĐÍCH/
Cũng có cách sử dụng các lệnh khác để có được cùng kết quả, nhưng lại phức tạp hơn. Ví dụ:
# dùng lệnh cp
$ cp --preserve=context,mode,ownership,timestamps,links --no-dereference --recursive NGUỒN ĐÍCH/.
# dùng tar nén lại và chuyển qua đường ống dẫn lệnh sau đó giải nén
$ tar zcvf - NGUỒN | (cd ĐÍCH; tar zxvf -)
2. rsync sử dụng giao thức nguyên bản
$ rsync -av /backup_dir rsync_server::/tên-mô-dun/đường-dẫn/
# Hay chỉ rõ giao thức và cổng sử dụng
$ rsync -av /backup_dir rsync://rsync_server:873/tên-mô-dun/đường-dẫn/
3. rsync qua ssh
Sử dụng cách này để thay cho scp.
# chép dữ liệu từ NGUỒN to ĐÍCH
$ rsync -avzH -e ssh --progress /NGUỒN username@ssh-server:/ĐÍCH
# ví dụ khác:
$ rsync -avzH -e 'ssh -2' /NGUỒN username@ssh-server:/ĐÍCH
# hai thư mục một lúc:
$ rsync -avz /thư_mục_1 /thư_mục_2 username@ssh-server:/sao_lưu/
# thực hiện lệnh trên máy chủ ở ví dụ dưới là tìm các tệp tin pdf trong /data
$ rsync -avR username@ssh-server:'`find /data/ -name "*.[pdf]"`' /download/
# sử dụng ký tự thoát chuỗi \ cho khoảng trắng
$ rsync -av username@ssh-server:'Đường\ dẫn\ chứa\ khoảng\ trắng\ file.pdf' /thư_mục_hiện_hành/
Bạn thực sự không nên đặt tên các tệp tin và thư mục có khoảng trắng để tránh phiền toái khi sử dụng.
III. Cài đặt máy chủ rsync
1. Cấu hình
Mặc dù người ta thường sử dụng rsync qua ssh nhưng bạn vẫn có thể sử dụng cài máy chủ dịch vụ rsynctheo giao thức nguyên bản của nó. Trước tiên cần cấu hình file /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[demo]
path = /home/yourusername/Documents
comment = Documents on Rsync Server
uid = nobody
read only = yes
list = yes
Chú ý: Bạn nên chú ý đến uid, bởi vì cơ chế phân quyền trên Linux rất chặt chẽ, một số thư mục other không được phép đọc, bạn cần chắc chắn là thư mục /home/yourusername/Documents, other (cụ thể ở đây là nobody) được phép đọc. Nếu không bạn chuyển uid thành tên user sở hữu thư mục này hay cực đoan hơn là 'root'. Cũng cần xem manpage của rsyncd.conf
$ man rsyncd.conf
2. Chạy stand-alone
$ sudo rsync --daemon
3. Chạy trên inetd
Thêm dòng này vào /etc/inetd.conf
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
4. Chạy trên xinetd
$ cat /etc/xinetd.d/rsync
service rsync
{
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
Chú ý bạn cũng nên kiểm tra thêm trong /etc/services để chắc là giao thức rsync đã sẵn có!
$ grep rsync /etc/services
rsync 873/tcp # rsync
rsync 873/udp # rsync
Chạy thử lệnh sau trên máy tính cài rsyncd bạn sẽ thấy thư mục NewDoc sẽ có nội dung của/home/yourusername/Documents:
$ rsync -av rsync://localhost:/demo NewDoc
5. Chạy trên ssh
Bạn chỉ cần cài và cấu hình openssh-server không cần phải cầu hình rsync.
$ sudo yum install openssh-server
$ sudo apt-get install openssh-server
IV. Tham khảo
- Manpage của rsync và rsyncd.conf
- http://rsync.samba.org/documentation.html
- http://everythinglinux.org/rsync/
- http://rsync.net/resources/howto/windows_rsync.html
- http://sourceforge.net/projects/grsync-win/
- http://rsync.samba.org/FAQ.html
Chúa chỉ giúp những ai biết cứu chính bản thân mình.
Câu này cũng giống như câu: "Khi gặp hoạn nạn hãy dựa vào chính mình".
=Hết=
NHÃN: COMMANDLINE, LINUX, NETWORK, OPENSSH, WINDOWS
CHỦ NHẬT, NGÀY 11 THÁNG MƯỜI HAI NĂM 2011
Cài Fedora bằng mạng LAN
Trang web chính thức của Fedora có giới thiệu cách tạo máy chủ Linux để cài Fedora qua mạng LAN . Ở đây tôi giới thiệu cách tạo máy chủ dùng hệ điều hành Windows. Tóm tắt quá trình như sau: đầu tiên máy tính sẽ boot pxe sau đó sẽ cài đặt thông qua HTTP.
Trước tiên bạn cần cài đặt một số phần mềm:
Sau khi cài đặt (đọc readme) bạn bật VCdControlTool lên.
2. Tạo dữ liệu pxe
Chọn Settings:
TFTP:
5. Khởi động máy tính cần cài
Máy tính cần cài phải hỗ trợ pxe. Phần lớn các máy tính đều cho chọn thiết bị khởi động khi nó mới được bật lên, thường là F12 hoặc F10.
Khi cài đặt Fedora bạn chọn cài qua giao thức HTTP.
Chú ý:
PS: Nếu các bạn quan tâm, tôi sẽ viết bài về cách cài đặt server để cài Fedora nhưng trên Linux.
=Danh ngôn:
Tài năng chỉ có một phần ba là bản tính, một phần ba là trí thức và một phần ba là ý chí.
D.ĐÔ-XKI
=Hết=
Trước tiên bạn cần cài đặt một số phần mềm:
- PXE, DHCP server (http://tftpd32.jounin.net/)
- HTTP server (http://nginx.org/)
- VirtualCD (http://support.microsoft.com/kb/916902/)
- File DVD Fedora iso (http://fedoraproject.org/en/get-fedora-options#formats)
Sau khi cài đặt (đọc readme) bạn bật VCdControlTool lên.
- Tạo ổ đĩa ảo bằng cách bấm "Add Drive"
- Chọn ổ đĩa rồi bấm Mount sau đó duyệt đến file iso mà bạn đã tải về.
2. Tạo dữ liệu pxe
- Tạo thư mục c:\pxefedora
- Copy thư mục isolinux vào thư mục đó
- Copy images\pxeboot
- Xóa isolinux.bin
- Chuyển isolinux.cfg -> pxelinux.cfg\default
- Tải pxelinux.0 từ http://archive.ubuntu.com/ubuntu/dists/maverick/main/installer-i386/current/images/netboot/pxelinux.0
Chọn Settings:
TFTP:
- Base Directory nhập vào c:\pxefedora
- Ip pool starting address: 192.168.1.101
- Size of pool: 10
- Boot File: pxelinux.0
conf/nginx.conf
location / {
#Z là tên ổ CD ảo
root "Z:/";
index index.html index.htm;
}
5. Khởi động máy tính cần cài
Máy tính cần cài phải hỗ trợ pxe. Phần lớn các máy tính đều cho chọn thiết bị khởi động khi nó mới được bật lên, thường là F12 hoặc F10.
Khi cài đặt Fedora bạn chọn cài qua giao thức HTTP.
Chú ý:
- Về phần mềm, không nhất thiết phải chọn các phần mềm tôi đã giới thiệu, như http server có thể sử dụng Apache, IIS (của Windows); hay có thể sử dụng http://www.dhcpserver.de/dhcpsrv.htm nó gồm tất cả các service kể trên.
- Fedora còn cho phép cài đặt trên FTP, NSF.
- Ngoài việc sử dụng pxelinux như trên bạn có thể sử dụng Grub4dos để tạo file boot mạng, nhưng tất nhiên là bạn phải cấu hình lại rất mất thời gian. Hay tải các file kernel và ram disk từhttp://virror.hanoilug.org/fedora/releases/16/Everything/i386/os/images/pxeboot/ thay vì copy từ DVD.
- Bạn còn có thể boot từ CD, USB sau đó cài thông qua mạng LAN.
PS: Nếu các bạn quan tâm, tôi sẽ viết bài về cách cài đặt server để cài Fedora nhưng trên Linux.
=Danh ngôn:
Tài năng chỉ có một phần ba là bản tính, một phần ba là trí thức và một phần ba là ý chí.
D.ĐÔ-XKI
=Hết=
THỨ TƯ, NGÀY 07 THÁNG MƯỜI HAI NĂM 2011
Sử dụng quota trên Linux
Với một môi trường làm việc đa người dùng, việc giới hạn dung lượng đĩa sử dụng cho từng người dùng là cần thiết. Để thực hiện điều này, có thể có nhiều cách khác nhau, như là chia ổ đĩa cứng thành nhiều phân vùng nhỏ rồi gắn cho từng user. Cách này cũng tốt nhưng nó có nhiều nhược điểm là: thứ nhất khi các phân vùng gần đầy, việc ghi dữ liệu sẽ khó khăn; thứ hai là khi bạn cần thay đổi hạn ngạch thì sẽ khó khăn; thứ ba là đĩa cứng bị lãng phí; thứ tư là không hạn ngạch theo nhóm được. May mắn thay là bạn không cần làm như vậy, vì Linux cung cấp cho chúng ta một mô-đun là quota.
quota giúp bạn quản lý hạn ngạch đĩa cứng cho từng user cũng như group. Hạn ngạch cho group là tổng dung lượng đĩa cho các thành viên trong nhóm. Khi hạn ngạch này hết, thì cho dù user còn quota cũng không thể sử dụng.
Sử dụng quota thích hợp nhất có lẽ là cho thư mục /home. Giả sử bạn sử dụng /dev/sdb5 để gắn cho thư mục này.
1. Cấu hình để sử dụng quota
Cần cài đặt nếu máy chưa có:
Để sử dụng quota cho /dev/sdb5 một cách tự động cho thư mục /home bạn cần khai báo thêm tuỳ chọnusrquota cho user và grpquota để áp dụng quota cho nhóm. Sửa file /etc/fstab từ:
thành:
Bạn cũng cần tạo file aquota.user, aquota.group lưu thông tin. Ở đây tôi tạo file aquota.user để đặt quotacho user làm ví dụ minh hoạ, với group bạn có thể làm tương tự.
Sau bước này bạn cần phải khởi động lại hệ điều hành. Có thể gắn lại sử dụng mount, nhưng không phải lúc nào cũng thành công, nhìn chung thì tốt nhất là nên khởi động lại.
2. Sử dụng quota
Khởi tạo bảng quota, bảng này chứa những thông tin file system đã được cấp phát cho từng user trong hệ thống. Bảng này sẽ tự động và trong suốt cập nhật thông tin mỗi khi user thao tác với file system. Hệ thống sẽ so sánh giá trị trong bảng này và giá trị quota mà bạn đã đặt cho các user trong quota file để xem xem user có thể sử dụng vượt quá không gian ổ cứng được phép hay không.
khởi tạo bảng quota bằng lệnh
Để đặt giá trị quota cho user bạn dùng lệnh edquota . Ví dụ để đặt quota cho user nam bạn dùng lệnh
thông tin hiện ra cho phép bạn xem xét và chỉnh sửa quota cho user tương ứng thông qua trình soạn thảo mạc định của hệ thống thường là vi. Để thay đổi sang nano bạn chạy lệnh export EDITOR=nano. Bạn cũng có thể thêm dòng này vào .bash_profile hay .bashrc.
khi đó user nam không thể sử dụng dung lượng ổ cứng quá 5MB, trong trường hợp blocksize=1024.
Tham số "grace" thể hiện khoảng thời gian mà user có thể sử dụng dung lượng ổ cứng vượt quá giá trị Soft limit, mặc định nó thường là 7 ngày. Bạn có thể sử dụng các đơn vị thời gian như: seconds, minutes, hours, days, weeks, và months. Đặt giá trị cho tham số này bằng lệnh:
Bạn có thể 'nhân bản' quota, thật tiện lợi phải không nào. Ví dụ bạn có thể áp dụng quota của 'nam' cho 'minh':
3. Xem thông tin về quota
Để xem thông tin quota bạn dùng lệnh quota. Ví dụ để xem thông tin quota của user nam bạn dùng lệnh
Để thống kê thông tin quota về các nhóm và user bạn dùng
4. Tham khảo
Lúc giàu chẳng sẻn, lúc nghèo mới hối.
Lúc rỗi chẳng học, lúc làm mới hối.
Lúc thường chẳng giữ gìn, lúc ốm mới hối.
=Hết=
quota giúp bạn quản lý hạn ngạch đĩa cứng cho từng user cũng như group. Hạn ngạch cho group là tổng dung lượng đĩa cho các thành viên trong nhóm. Khi hạn ngạch này hết, thì cho dù user còn quota cũng không thể sử dụng.
Sử dụng quota thích hợp nhất có lẽ là cho thư mục /home. Giả sử bạn sử dụng /dev/sdb5 để gắn cho thư mục này.
1. Cấu hình để sử dụng quota
Cần cài đặt nếu máy chưa có:
$ apt-get install quota
Để sử dụng quota cho /dev/sdb5 một cách tự động cho thư mục /home bạn cần khai báo thêm tuỳ chọnusrquota cho user và grpquota để áp dụng quota cho nhóm. Sửa file /etc/fstab từ:
/dev/sdb5 /home ext4 defaults 1 2
thành:
/dev/sdb5 /home ext4 defaults,usrquota,grpquota 1 2
Bạn cũng cần tạo file aquota.user, aquota.group lưu thông tin. Ở đây tôi tạo file aquota.user để đặt quotacho user làm ví dụ minh hoạ, với group bạn có thể làm tương tự.
$ touch /home/aquota.user
Sau bước này bạn cần phải khởi động lại hệ điều hành. Có thể gắn lại sử dụng mount, nhưng không phải lúc nào cũng thành công, nhìn chung thì tốt nhất là nên khởi động lại.
2. Sử dụng quota
Khởi tạo bảng quota, bảng này chứa những thông tin file system đã được cấp phát cho từng user trong hệ thống. Bảng này sẽ tự động và trong suốt cập nhật thông tin mỗi khi user thao tác với file system. Hệ thống sẽ so sánh giá trị trong bảng này và giá trị quota mà bạn đã đặt cho các user trong quota file để xem xem user có thể sử dụng vượt quá không gian ổ cứng được phép hay không.
khởi tạo bảng quota bằng lệnh
$ quotacheck -vagum
Để đặt giá trị quota cho user bạn dùng lệnh edquota . Ví dụ để đặt quota cho user nam bạn dùng lệnh
$ edquota -u nam
thông tin hiện ra cho phép bạn xem xét và chỉnh sửa quota cho user tương ứng thông qua trình soạn thảo mạc định của hệ thống thường là vi. Để thay đổi sang nano bạn chạy lệnh export EDITOR=nano. Bạn cũng có thể thêm dòng này vào .bash_profile hay .bashrc.
Filesystem blocks soft hard inodes soft hard
/dev/sdb5 24 0 0 7 0 0
- Blocks: thể hiện dung lượng ổ cứng mà user đang sử dụng, tính theo đơn vị block. Bạn không sửa trường dữ liệu này! Để biết kích thước của một block của phân vùng đĩa cứng, bạn sử dụng lệnh:
$ dumpe2fs /dev/sdb5 | grep size
- Inodes: thể hiện số lượng file tất nhiên là cả thư mục nữa của user đó. Bạn không sửa trường dữ liệu này!
- Soft: thể hiện dung lượng ổ cứng lớn nhất mà user được phép dùng. Người dùng có thể sử dụng tạm thời vượt quá giá trị này nếu như Hard limit lớn hơn soft limit và chỉ trong thời gian được hạn định (grace periods tạm dịch là thời gian gia hạn). Khi đó nếu sử dụng quá dung lượng được phép trong giới hạn thời gian quy định bởi tham số "grace" user chỉ bị cảnh báo. Nếu vượt quá giá trị "grace" mà giá trị soft không được đặt lại, user sẽ không thể sử dụng thêm không gian ổ cứng.
- Hard: thể hiện dung lượng ổ cứng lớn nhất mà user được phép dùng thông số này chỉ có ý nghĩa khi tham số "grade" được sử dụng. Nó thể hiện rằng user chỉ có thể vượt quá giá trị soft chứ không thể vượt quá giá trị hard (khi tham số grade được đặt).
Filesystem blocks soft hard inodes soft hard
/dev/sdb5 24 5000 5000 7 0 0
khi đó user nam không thể sử dụng dung lượng ổ cứng quá 5MB, trong trường hợp blocksize=1024.
Tham số "grace" thể hiện khoảng thời gian mà user có thể sử dụng dung lượng ổ cứng vượt quá giá trị Soft limit, mặc định nó thường là 7 ngày. Bạn có thể sử dụng các đơn vị thời gian như: seconds, minutes, hours, days, weeks, và months. Đặt giá trị cho tham số này bằng lệnh:
$ edquota –tu # chỉnh cho user có thể bỏ -u
$ edquota –tg # chỉnh cho group
Filesystem Block grace period Inode grace period
/dev/sdb5 7days 7days
Bạn có thể 'nhân bản' quota, thật tiện lợi phải không nào. Ví dụ bạn có thể áp dụng quota của 'nam' cho 'minh':
$ edquota -p nam -u minh
3. Xem thông tin về quota
Để xem thông tin quota bạn dùng lệnh quota. Ví dụ để xem thông tin quota của user nam bạn dùng lệnh
$ quota -u nam # user nam
$ quota -g staff # nhóm staff
Để thống kê thông tin quota về các nhóm và user bạn dùng
$ repquota -au # theo người dùng
$ repquota -ag # theo nhóm
$ repquota -agu # tất cả
4. Tham khảo
- Xem trong manpage của quotacheck, quota, edquota, repquota, quotaon. Và cũng cần biết cách sử dụng các công cụ khác như là setquota, convertquota, quotastats, quot, quotasync, warnquota, xqmstats, rpc.rquotad. Các công cụ này tại: http://sourceforge.net/projects/linuxquota
- http://souptonuts.sourceforge.net/quota_tutorial.html
- http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch28_:_Managing_Disk_Usage_with_Quotas
- http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html
- http://tldp.org/HOWTO/Quota.html
Lúc giàu chẳng sẻn, lúc nghèo mới hối.
Lúc rỗi chẳng học, lúc làm mới hối.
Lúc thường chẳng giữ gìn, lúc ốm mới hối.
=Hết=
CHỦ NHẬT, NGÀY 04 THÁNG MƯỜI HAI NĂM 2011
Khởi động, khởi tạo và tắt máy Linux
1. Giới thiệu
Do là hệ điều hành nguồn mở nên cách khởi động và ngừng Linux cũng "mở" chứ không cố định như các hệ điều hành nguồn đóng khác. Điều này cho phép bạn chọn cách khởi động cũng như các phần mềm khác nhau.
Bài viết này sẽ giới thiệu cơ bản quá trình khởi động và kết thúc hệ điều hành Linux. Ở đây tôi chỉ viết quá trình này trên máy tính PC tương tích IBM, không đề cập đến các thiết bị nhúng.
Về cơ bản, quá trình diễn ra như sau:
Không máy tính được bật lên, mặc định chỉ lệnh sẽ hướng tới địa chỉ 0 và đây chính là địa chỉ vật lý của ROM BIOS (Basic Input/Output System) và chạy từ đó. Bộ nhớ chương trình BIOS thường là bộ nhớ chỉ đọc. BIOS cung cấp mã chương trình ở mức thấp nhất dành cho các thiết bị và nó là đoạn chương trình khởi động đầu tiên của máy tính, bất kể nó chạy hệ điều hành nào. Đây là bộ nhớ chương trình rất quan trọng vì nếu hỏng máy tính sẽ không thể hoạt động. Do đó nhiều mainboard hiện nay hỗ trợ Dual-BIOS tức là hệ thống kép.
Vậy BIOS làm những nhiệm vụ gì?
BIOS kiểm tra hệ thống, tìm kiếm các thiết bị mở rộng, sau đó là tìm và ánh xạ các ổ đĩa phục vụ cho việc khởi động tiếp theo. Nếu quá trình kiểm tra phần cứng thành công nó sẽ báo tín hiệu bằng tiếng bíp hay nháy đèn led trên mặt máy. Còn nếu có hỏng hóc, nó cũng báo cho ta biết.
Tiếp theo nó tìm đến một thiết bị để khởi động được cài đặt sẵn trong BIOS, thường là CD-ROM hoặcUSB hoặc HDD. Nếu hệ điều hành Linux được cài trên ổ đĩa cứng thì nó sẽ tìm đến Master Boot Record (MBR) tại sector đầu tiên của ổ đĩa cứng đầu tiên.
MBR này thường chứa các chỉ lệnh để tải boot-loader của GRUB (hay LILO). MBR rất nhỏ chỉ có 512 bytes hơn nữa nó còn phải chứa thêm bảng phân vùng và một số thông tin khác nữa, nên nó chỉ có thể chứa được một số ít lệnh giúp máy có thể tìm đến các phần mềm khởi động nằm trên ổ đĩa mà thôi.
Sau khi GRUB được tải lên nó sẽ tải kernel mà ramdisk. Tại đây Linux mới thực sự được khởi động.
3. Quá trình khởi tạo của Linux
Đây là phần chính chúng ta cần tìm hiểu.
Kernel, một khi đã tải xong, nó sẽ thi hành lệnh init thường nằm trong thư mục /sbin. Do vậy có thể nóiinit là mẹ của mọi tuyến trình khởi động tự động trong hệ điều hành Linux.
Việc đầu tiên nó cần biết là cấu trúc tệp tin (filesystem) của nó được gắn ở đâu bằng các đọc file/etc/inittab. Về cơ bản, bước này sẽ thực hiện mọi thứ cần thiết mà hệ thống của bạn cần thực hiện khởi tạo: đặt đồng hồ, khởi tạo cổng nối tiếp, v.v..
Quá trình khởi tạo sẽ đọc file cấu hình cho nó là /etc/inittab, và nó sẽ mô tả hệ thống sẽ được khởi động như thế nào cũng như là level mặc định khi khởi động. Một "run level" là một cấu hình của một processes. Hệ điều hành Linux có thể hoạt động ở nhiều mức cấu hình khác nhau, chẳng hạn như là chế độ đơn người dùng, được quy định là mức 1 hay là level S (hay s). Ở chế độ này, chỉ có một người duy nhất đăng nhập hệ thống là người quản trị (quyền root). Chế độ này chỉ dùng để sửa chữa hệ thống mà thôi. Một mức khác là reboot, 6, nó tắt tất cả các tuyến trình và khởi động lại hệ thống.
Trên phần lớn các bản phân phối Linux, thường dùng 7 level, có giá trị từ 0-6, mức 4 không sử dụng.
Các mức này thường được mô tả trong file /etc/inittab, đoạn trích của nó đại loại như sau:
Ở phần cấu hình trên mức mặc định sẽ là 5.
Chú ý: Một số hệ điều hành không có file inittab này, như Ubuntu. Chúng sử dụng cách khác để đặt, Ubuntu sử dụng runlevel để đặt mức:
Xem mình đang ở level nào:
Mức 5 ở đây là chế độ đa người dùng, có sử dụng X11
Sau khi biết được mức mặc định, init sẽ thống kê tất cả các công việc cần làm bằng cách tìm trong thư mục tương ứng cho mức khởi động đó. Thư mục đó thường có tên là /etc/rc.d với x là một con số tương ứng với mức. init chạy từng chương trình (thường là các script) với tham số là start hay stop tùy thuộc vào mức nào. Các script trong các thư mục này thương có tiền tố là S và K (là viết tắt của Start và Kill). Như vậy các script nào có tiền tố là S sẽ được init gọi với tham số start và ngược lại, K sẽ được gọi kèm với tham số stop.
Trong thực tế bạn có thể khởi động các script này bằng cách thủ công tại thư mục /etc/init.d/ Ví dụ:
Thường là không có script thật nào trong /etc/rc.d cả. Tất cả các files trong /etc/rc.d là liên kết mềm chỉ đến file thật nằm trong thư mục /etc/init.d. Người ta sử dụng symbolic link bởi vì người dùng có thể bật/tắt các script này mà không cần làm ảnh hưởng đến file thật.
Các script được khởi động theo thứ tự bảng chữ cái do vậy bạn có thể hiểu được tại sao người ta phải thêm chữ số vào đầu tên của script. Các script phải có định dạng đúng như yêu cầu mới được init khởi chạy. Do vậy bạn chỉ cần đổi tên (chữ cái đầu thành chữ khác hoăc phần số vượt ra ngoài vùng 00-99) script sẽ không được gọi nữa! Thông thường thì có các phần mềm giúp ta thêm hay bới các dịch vụ cần khởi động cùng Linux, do vậy bạn không cần thao tác bằng tay. Trên Ubuntu người ta thường hay dùng "update-rc.d" một số bản phân phối khác thì dùng "chkconfig":
/etc/inittab ngoài ra còn cấu hình một số thông tin khác nữa như là cách sử lý khi người dùng bấmCtrl+Alt+Delete. Ví dụ:
Việc kết thúc, khởi động lại hay tắt máy, cũng đơn giản chỉ là gửi tham số stop cho các chương trình nằm trong /etc/rc0.d hoặc /etc/rc6.d
5.Cấu trúc của đoạn script khởi động
Các script khởi động thường đặt tại thư mục /etc/init.d
Như đã biết các đoạn chương trình này được init gọi với tham số dòng lệnh là start và stop. Do vậy việc viết các chương trình này thường sử dụng cấu trúc case. Ngoài việc được gọi bởi init, nó còn có thể được gọi từ dòng lệnh bởi người dùng, vì thế cũng nên có thêm phần usage và restart. Đây là đoạn mã tham khảo:
Chú ý:
Không có quyển sách nào hay đối với người dốt.
Không có tác phẩm nào dở đối với người khôn.
DIDERCT
=Hết=
Do là hệ điều hành nguồn mở nên cách khởi động và ngừng Linux cũng "mở" chứ không cố định như các hệ điều hành nguồn đóng khác. Điều này cho phép bạn chọn cách khởi động cũng như các phần mềm khác nhau.
Bài viết này sẽ giới thiệu cơ bản quá trình khởi động và kết thúc hệ điều hành Linux. Ở đây tôi chỉ viết quá trình này trên máy tính PC tương tích IBM, không đề cập đến các thiết bị nhúng.
Về cơ bản, quá trình diễn ra như sau:
- Quá trình POST máy
- Lấy mã khởi động từ thiết bị (ổ đĩa) khởi động đã chọn
- Khởi động phần mềm khởi động
- Khởi động nhân Linux
- Khởi tạo Linux
- Kết thúc các tuyến trình
Không máy tính được bật lên, mặc định chỉ lệnh sẽ hướng tới địa chỉ 0 và đây chính là địa chỉ vật lý của ROM BIOS (Basic Input/Output System) và chạy từ đó. Bộ nhớ chương trình BIOS thường là bộ nhớ chỉ đọc. BIOS cung cấp mã chương trình ở mức thấp nhất dành cho các thiết bị và nó là đoạn chương trình khởi động đầu tiên của máy tính, bất kể nó chạy hệ điều hành nào. Đây là bộ nhớ chương trình rất quan trọng vì nếu hỏng máy tính sẽ không thể hoạt động. Do đó nhiều mainboard hiện nay hỗ trợ Dual-BIOS tức là hệ thống kép.
Vậy BIOS làm những nhiệm vụ gì?
BIOS kiểm tra hệ thống, tìm kiếm các thiết bị mở rộng, sau đó là tìm và ánh xạ các ổ đĩa phục vụ cho việc khởi động tiếp theo. Nếu quá trình kiểm tra phần cứng thành công nó sẽ báo tín hiệu bằng tiếng bíp hay nháy đèn led trên mặt máy. Còn nếu có hỏng hóc, nó cũng báo cho ta biết.
Tiếp theo nó tìm đến một thiết bị để khởi động được cài đặt sẵn trong BIOS, thường là CD-ROM hoặcUSB hoặc HDD. Nếu hệ điều hành Linux được cài trên ổ đĩa cứng thì nó sẽ tìm đến Master Boot Record (MBR) tại sector đầu tiên của ổ đĩa cứng đầu tiên.
MBR này thường chứa các chỉ lệnh để tải boot-loader của GRUB (hay LILO). MBR rất nhỏ chỉ có 512 bytes hơn nữa nó còn phải chứa thêm bảng phân vùng và một số thông tin khác nữa, nên nó chỉ có thể chứa được một số ít lệnh giúp máy có thể tìm đến các phần mềm khởi động nằm trên ổ đĩa mà thôi.
Sau khi GRUB được tải lên nó sẽ tải kernel mà ramdisk. Tại đây Linux mới thực sự được khởi động.
3. Quá trình khởi tạo của Linux
Đây là phần chính chúng ta cần tìm hiểu.
Kernel, một khi đã tải xong, nó sẽ thi hành lệnh init thường nằm trong thư mục /sbin. Do vậy có thể nóiinit là mẹ của mọi tuyến trình khởi động tự động trong hệ điều hành Linux.
Việc đầu tiên nó cần biết là cấu trúc tệp tin (filesystem) của nó được gắn ở đâu bằng các đọc file/etc/inittab. Về cơ bản, bước này sẽ thực hiện mọi thứ cần thiết mà hệ thống của bạn cần thực hiện khởi tạo: đặt đồng hồ, khởi tạo cổng nối tiếp, v.v..
Quá trình khởi tạo sẽ đọc file cấu hình cho nó là /etc/inittab, và nó sẽ mô tả hệ thống sẽ được khởi động như thế nào cũng như là level mặc định khi khởi động. Một "run level" là một cấu hình của một processes. Hệ điều hành Linux có thể hoạt động ở nhiều mức cấu hình khác nhau, chẳng hạn như là chế độ đơn người dùng, được quy định là mức 1 hay là level S (hay s). Ở chế độ này, chỉ có một người duy nhất đăng nhập hệ thống là người quản trị (quyền root). Chế độ này chỉ dùng để sửa chữa hệ thống mà thôi. Một mức khác là reboot, 6, nó tắt tất cả các tuyến trình và khởi động lại hệ thống.
Trên phần lớn các bản phân phối Linux, thường dùng 7 level, có giá trị từ 0-6, mức 4 không sử dụng.
Các mức này thường được mô tả trong file /etc/inittab, đoạn trích của nó đại loại như sau:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS
# (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:5:initdefault:
Ở phần cấu hình trên mức mặc định sẽ là 5.
Chú ý: Một số hệ điều hành không có file inittab này, như Ubuntu. Chúng sử dụng cách khác để đặt, Ubuntu sử dụng runlevel để đặt mức:
# trên Ubuntu 9.04
$ runlevel -v --set=5 # runlevel=5
# trên Ubuntu 10.04 và mới hơn
$ runlevel RUNLEVEL=RUNLEVEL PREVLEVEL=PREVLEVEL [ENV]...
Xem mình đang ở level nào:
$ who -r
run-level 5 2011-12-02 07:10 last=S
Mức 5 ở đây là chế độ đa người dùng, có sử dụng X11
Sau khi biết được mức mặc định, init sẽ thống kê tất cả các công việc cần làm bằng cách tìm trong thư mục tương ứng cho mức khởi động đó. Thư mục đó thường có tên là /etc/rc
Trong thực tế bạn có thể khởi động các script này bằng cách thủ công tại thư mục /etc/init.d/ Ví dụ:
$ /etc/init.d/httpd stop # tắt httpd
Thường là không có script thật nào trong /etc/rc
$ ls /etc/rc5.d # có thể thêm tùy chọn -l để có thấy được thuộc tính ln của nó
README S24hal S50rsync S90binfmt-support
S01policykit S25bluetooth S50saned S98usplash
S10acpid S30gdm S50system-tools-backends S99acpi-support
S10apmd S40noip2 S70bootlogs.sh S99laptop-mode
S10sysklogd S41xinetd S70dns-clean S99ondemand
S11klogd S50avahi-daemon S70pppd-dns S99rc.local
S12dbus S50cups S89anacron S99rmnologin
S20apport S50NetworkManager S89atd S99stop-readahead
S20hotkey-setup S50pulseaudio S89cron
Các script được khởi động theo thứ tự bảng chữ cái do vậy bạn có thể hiểu được tại sao người ta phải thêm chữ số vào đầu tên của script. Các script phải có định dạng đúng như yêu cầu mới được init khởi chạy. Do vậy bạn chỉ cần đổi tên (chữ cái đầu thành chữ khác hoăc phần số vượt ra ngoài vùng 00-99) script sẽ không được gọi nữa! Thông thường thì có các phần mềm giúp ta thêm hay bới các dịch vụ cần khởi động cùng Linux, do vậy bạn không cần thao tác bằng tay. Trên Ubuntu người ta thường hay dùng "update-rc.d" một số bản phân phối khác thì dùng "chkconfig":
$ update-rc.d ssh default 44 # 44 chính là phần số
$ chkconfig --level 345 httpd on
/etc/inittab ngoài ra còn cấu hình một số thông tin khác nữa như là cách sử lý khi người dùng bấmCtrl+Alt+Delete. Ví dụ:
# Trap CTRL-ALT-DELETE4. Kết thúc các tuyến trình
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Việc kết thúc, khởi động lại hay tắt máy, cũng đơn giản chỉ là gửi tham số stop cho các chương trình nằm trong /etc/rc0.d hoặc /etc/rc6.d
5.Cấu trúc của đoạn script khởi động
Các script khởi động thường đặt tại thư mục /etc/init.d
Như đã biết các đoạn chương trình này được init gọi với tham số dòng lệnh là start và stop. Do vậy việc viết các chương trình này thường sử dụng cấu trúc case. Ngoài việc được gọi bởi init, nó còn có thể được gọi từ dòng lệnh bởi người dùng, vì thế cũng nên có thêm phần usage và restart. Đây là đoạn mã tham khảo:
#!/bin/sh
...
case "$1" in
start)
echo -n "Starting process-name: "
daemon process-name
echo
touch /var/lock/subsys/process-name
;;
stop)
echo -n "Shutting down process-name: "
killproc process-name
echo
rm -f /var/run/process-name.pid # xóa process file
;;
status)
status process-name
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reloading process-name: "
killproc process-name -HUP
echo
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0
Chú ý:
- Xem init manpage
- Tham khảo thêm script mẫu /etc/init.d/skeleton đối với Ubuntu Linux.
- Bạn cũng cần chú ý là thứ tự khởi động cũng như là tắt một số dịch vụ là quan trọng. Thứ tự không đúng sẽ làm cho hệ điều hành không thể khởi động cũng như tắt máy. Bạn chỉ nên can thiệp một số dịch vụ có tính độc lập cao như sshd, xinetd, vsftpd, httpd v.v.. không được thay đổi hệ thống, ví dụ như gdm.
Không có quyển sách nào hay đối với người dốt.
Không có tác phẩm nào dở đối với người khôn.
DIDERCT
=Hết=
Đăng ký: Các Bài đăng (Atom)
LƯU TRỮ BLOG
GIỚI THIỆU BẢN THÂN
- QSOFTWARE
- HÀ NỘI, VIETNAM
- Ăn như rồng cuốn, nói như rồng leo, làm như mèo mửa.
Luôn luôn lắng nghe, lâu lâu mới hiểu.
http://vnwildman.users.sourceforge.net/
TRANG
http://www.linux4share.com/blog/
Blog Bùi Quang Huy
Không có nhận xét nào:
Đăng nhận xét