1. Tìm hiểu cách cấu hình crontab
Cron là một dịch vụ giúp đặt lịch thực hiện tiến trình tự động
theo một khung thời gian được thiết lập cụ thể trên Linux. Những công việc phải
làm lặp lại hàng giờ, hàng ngày, hàng tuần, hàng tháng,… nói chung là lặp lại
theo định kỳ.
Ví dụ như:
·
Kiểm tra email mỗi 10 phút
·
Yêu cầu thay đổi mật khẩu đăng nhập mỗi 2 tháng
·
Kiểm tra và cập nhật hệ thống vào 3 giờ sáng
hàng ngày
Đối với hệ thống thông tin, những việc được thực hiện khi điều
kiện đặc biệt nào đó xảy ra cũng được coi là hoạt động thường xuyên như:
·
Khóa tài khoản 10 phút nếu nhập sai mật khẩu 3 lần
·
Phát cảnh báo nếu nhiệt độ CPU quá 900C
v
Lập lịch
bằng crontab
Mỗi người dùng có crontab của riêng họ đặt trong thư mục
“/var/spool/cron/” (mỗi người 1 file).
Các crontab chung của hệ thống đặt ở một số nơi khác, hệ thống
sẽ quét các file này và xử lý định kỳ
·
/etc/crontab
·
/etc/cron.d/
·
/etc/cron.hourly/
·
/etc/cron.daily/
·
/etc/cron.weekly/
·
/etc/cron.monthly/
Định dạng của Linux
Crontab: MIN HOUR DOM MON DOW CMD
Bảng: Các trường trong crontab và phạm vi cho phép hoạt
động (cú pháp lệnh Linux Crontab).
Trường
|
Mô tả
|
Giá trị cho phép
|
MIN
|
Phút
|
0-59
|
HOUR
|
Giờ
|
0-23
|
DOM
|
Ngày trong tháng
|
1-31
|
MON
|
Tháng
|
1-12
|
DOW
|
Ngày trong tuần
|
0-6
|
CMD
|
Lệnh
|
Tất cả các lệnh có thể thực thi
|
·
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:
* * *
* * câu lệnh
- - -
- -
| | |
| |
| | |
| +----- thứ (0 - 6)
(Sunday=0)
| | |
+------- tháng (1 - 12)
| |
+--------- ngày (1 - 31)
| +----------- giờ
(0 - 23)
+------------- phút (0 - 59)
·
Cách cron
làm việc?
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 tạo hoặc chỉnh sửa trực
tiếp với bất kỳ trình text editor nào, trừ khi 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
·
Chỉnh sửa
các mục crontab
Để chỉnh sửa các mục crontab, sử dụng crontab –e.
·
Xem các mục
trong crontab
Hiển thị tất cả các mục crontab của người dùng đã thiết lập
Sử dụng lệnh: crontab
–l
Ý nghĩa:
·
30– Phút thứ 30
·
08– Lúc 8giờ sáng
·
10– Ngày thứ 10 trong tháng
·
06– Tháng 6
·
*– Tất cả các ngày trong tuần.
Muốn xem các mục crontab của người dùng linux khác, thì đăng
nhập vào tài khoản root và sử dụng lệnh: crontab
–u{username} –l
·
Một số ví
dụ về lập lịch bằng crontab
Ví dụ 1: Chạy
file backup.sh trong /home/tunvh/backup.sh trong ngày 2
tháng 1 lúc 6:15AM
15 6 2 1 * /home/tunvh/backup.sh
Ví dụ 2: Chạy
/home/tunvh/hourly-archive.sh
mỗi giờ, từ 9:00AM – 6:00PM
0 9-18 * * * /home/tunvh/hourly-archive.sh
Ví dụ 3: Chạy
/home/tunvh/script.sh mỗi thứ 2, lúc 9:00AM và 6:00PM
0 9,18 * * Mon /home/tunvh/script.sh
Ví dụ 4: Chạy
/usr/local/bin/backup lúc 10:30PM mỗi ngày trong tuần
30 22 * * Mon,Tue,Wed,Thu,Fri,Sat
/usr/local/bin/backup
Ví dụ 5: Thực
hiện việc bảo trì hệ thống hằng năm sử dụng script bảo trì hệ thống hàng năm
vào lúc 00:00 ngày 1 tháng 1 cho mỗi năm.
@yearly /home/tunvh/annual-maintenance
Tương tự @monthly: thực
hiện hàng tháng
@weekly:
thực hiện hàng tuần
Ví dụ 6: chạy
script 5p/ lần
*/5 * * * * script
v
Các bước
thực hiện
-
Tạo crontab mới: crontab –e
-
Thêm dòng: *
* * * * date >> /tmp/times.log
-
Khởi động lại dịch vụ cron để cập nhật lệnh mới:
service cron restart
-
Theo dõi sự cập nhật của file times.log xem dịch
vụ chạy đúng không: tail –f
/tmp/times.log
0 nhận xét:
Đăng nhận xét