|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
15-06-2009, 12:25 AM | #1 | ||||||||||||||||||||
Guest
Trả Lời: n/a
|
Lập lịch bằng Crontab trong linux( Hướng dẫn sử dụng Crontab)
Lập lịch bằng Crontab trong linux( Hướng dẫn sử dụng Crontab) 1. Cron là gì? Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy. 2. Cron làm việc thế nào? Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng: Quote: crontab -e: tạo hoặc chỉnh sửa file crontab crontab -l: hiển thị file crontab crontab -r: xóa file crontab 3. Cấu trúc của crontab Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau: Code: * * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59) Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó. 4. Ví dụ Giả sử tôi viết một đoạn script backup bookmarks trong Firefox như sau: Code: #!/bin/bash date=`date +%F` cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html sau đó tôi cho script này chạy định kỳ vào 15h thứ Hai và thứ Năm hàng tuần bằng cách tạo một file crontab như sau: Code: $ crontab -e 0 15 * * 1,4 sh /mnt/data/linux/code/backupbookmarks.sh Cuối cùng, nhớ khởi động lại cron daemon: Code: /etc/init.d/crond restart ps: Để muốn "test" ngay xem crontab nó có hoạt động không, bạn có thể sửa lại đoạn script trên một chút: Code: #!/bin/bash date=`date +%F-%H-%M-%S` cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html và file crontab bạn sẽ cho backup liên tục theo từng phút như sau: Quote: 0-59 * * * * sh /mnt/data/linux/code/backupbookmarks.sh Bạn có thể chỉnh sửa file crontab trong Linux luôn bằng cách xài Software GNU Midnight Commander. Ngoài ra bạn cũng có thể tạo File crontab (không có đuôi) trên máy Windows (cách này thường dùng trong trường hợp máy chủ là Linux máy con là Windows) bằng chương trình NOTEPAD rồi dùng Software WinSCP chuyển qua máy Linux. Lưu ý sau khi chuyển qua máy Linux phải chạy lênh "dos2unix 'pathfile'" để chuyển sang loại file Linux đọc được. 5. Hướng dẫn sử dụng CrontabLà một lệnh shell được sử dụng trong linux với mục đích lập thời gian biểu tự động chạy một ứng dụng cụ thể nào đó hoặc để thực hiện tự động 1 nhiệm vụ nào đó mà người dùng định nghĩa. Khi thực hiện khai báo lệnh này cần chú ý về thời gian thực hiện, tránh thực hiện những lệnh backup data hay restart service trong thời gian nhạy cảm của hệ thống: thời gian có nhiều tiến trình đang hoạt động, có nhiều kết nối từ bên ngoài vào ...
Thường được dùng để backup hoặc xóa các file tạm được sinh ra trong quá trình vận hành hệ thống... được định nghĩa trong file /etc/crotab. Cú pháp câu lệnh Crontab Ví dụ: Để xóa file home/someuser/tmp/ vào lúc 18h45 hàng ngày ta dùng lệnh sau: 4518***User rm/home/someuser/tmp/* 4518***Là thời gian thực hiện User là user thực hiện rm/home/someuser/tmp/* Công việc thực hiện Các bước tiến hành như sau: Bước 1: Khở động terminal của máy muốn thực hiện. Bước 2: Dùng lệnh cd để truy cập vào thư mục /etc Bước 3: Mở file crontab bằng lệnh vi or vim trong linux để cấu hình Bước 4: Tiến hành thiết đặt các thông số cần thiết Bước 5: Save file crontab và thực hiện restart lại dịch vụ crontab bằng lệnh sau: service crond restart
Ví dụ: Bước 1: Ta tiến hành tạo một file file_crontab.sh có nội dung như sau bằng lệnh vi (vim) mkdir -p/root/test cp/tmb/* /root/test cd/root/test taz -cvf test.tar/root/test/* cp/root/test/test.tar/home/someuser/tmp Bước 2: Tiến hành thiết lập cấu hình cho file crontab the trình tự các bước ở phần trên rồi khởi động lại. - Thêm dòng này vào file crontab. 0020***root sh/path/file_crontab.sh - Restart lại dịch vụ crontab Ví dụ lập lịch backup mysql lúc 4 giờ sáng hàng ngày Giả sử một đoạn script backup database MySQL như sau: #!/bin/bashSau đó cho script này chạy định kỳ vào 4h sáng hàng ngày bằng cách tạo một file crontab như sau: # crontab -eCuối cùng, nhớ kiểm tra dịch vụ cron daemon # /etc/init.d/crond statusNếu crontab chưa khởi động thì khởi động bằng lệnh # /etc/init.d/crond startVí dụ lập lịch khởi động lại dịch vụ httpd hàng giờ Giả sử một đoạn script backup database MySQL như sau: Tạo file autorestart.sh với nội dung sau #vi /etc/autorestart.sh
Chạy crontab 5 phút or 5 giờ or 5 ngày 1 lần thì dùng cấu trúc sau 5 phút */5 5 giờ 0 */5
Một số lưu ý - Khi thực hiện khai báo lệnh này ta lên chú ý về thời gian thực hiện, tránh thực hiện những lệnh backup dữ liệu hay restart lại service trong thời gian nhạy cảm của hệ thống (thời gian có nhiều tiến trình đang hoạt động, có nhiều kết nối từ bên ngoài vào). Tài liệu tham khảo: Các bạn có thể tham khảo tài liệu tiếng Anh tại địa chỉ sau: http://www.tech-geeks.org/contrib/md...ntab-howto.htm Sưu tầm |
||||||||||||||||||||
|
|