Cấu hình crontab


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á 90­0C

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


Share on Google Plus

About Unknown

I'm Demons, I write this blog want to share knowlegde with everyone!
    Blogger Comment

0 nhận xét:

Đăng nhận xét