1. Crontab là gì?
Cron là một tiện ích cho phép các tác vụ (tasks) tự
động chạy nền trên hệ thống theo định kỳ bằng cách sử dụng các cron daemon.
Crontab (CRON TABle) là một file chứa đựng trong nó các bảng biểu (schedule) cần
chạy cũng như thời gian chạy của nó. Nó tương tự như Task Scheduler của
Windows. Tất cả những gì chúng ta cần làm là gán các chương trình cần thực thi
tới file crontab của hệ thống và sử dụng cấu trúc lệnh phù hợp, cron sẽ tự động
thực hiện các ứng dụng đó vào thời điểm đã được thiết lập sẵn trước đó. Do vậy,
tính năng này rất phù hợp trong quá trình tự động sao lưu dữ liệu, bảo dưỡng hệ
thống... và các công việc tương tự khác.
2. Cài đặt Crontab
Kiểm tra coi đã cài đặt Cron chưa bằng lệnh:
Rpm –qa | grep cron
Nếu chưa cài đặt thì cài đặt
Yum install crontabs
3. Crontab làm việc như 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:
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
4. 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:
minute(0-59)
hour(0-23) day(1-31) month(1-12) weekday(0-6) command
* *
* * *
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
đó.
5. Ví dụ:
Bạn muốn copy file access_log và error_log trong apache vào thư mục /Backup hàng
ngày vào lúc 11h30 AM
Đầu tiên bạn tạo
ra một file scrip tenfile.sh chứa đựng lệnh mà bạn cần chạy, trong trường hợp
này là:
#!/bin/bash
date=`date
+%F-%H-%M-%S`
cp
/var/log/httpd/access_log /Backup/access_log-$date
cp
/var/log/httpd/error_log /Backup/error_log-$date
Lưu vào thư mục
/Backup với tên backup.sh
Mở crontab bằng
lệnh: crontab –e
crontab -e
30 11 * * * sh /Backup/backup.sh
Bạn cũng có thể
cho backup theo từng phút bằng lệnh:
0-59 * * * * sh /Backup/backup.sh
:x! để lưu lại, service crond status để kiểm tra dịch vụ crontab.
service crond start để start dịch vụ crondtab (service crond restart để khởi động
lại dịch vụ).
chkconfig crond on để start dịch vụ cùng hệ thống.
Lưu ý:
- Bạn
có thể viết lệnh trực tiếp vào trong cron table, nếu để trong 1 file script thì
thêm #!/bin/bash vào đầu file.
- Dùng
dấu , để ngăn tách các giá trị, dấu – để liên tiếp các giá trị (ví dụ bạn ưng
vào tháng 1, 5, 6 hoặc từ tháng 1 tới tháng 6 (1-6)).
- Bạn
có thể chạy nhiều scrip trên crontab, mỗi cái viết trên 1 dòng.
- Luôn
luôn dùng đường dẫn đầy đủ khi viết script để chạy cron job.
Không có nhận xét nào:
Đăng nhận xét