Skip to main content

Hướng dẫn cài đặt và cấu hình Cronjob trên Centos

Sau khi kết nối server bằng SSH, chúng ta bắt đầu thực hiện các bước sau: 

Update hệ thống 

Dùng lệnh để update hệ thống 

sudo yum update

Kiểm tra Cron đang hoạt động hay đã cài đặt chưa

Sử dụng lệnh kiểm tra bản cron trên centos 

sudo rpm -q cronie

Tiến hành cài đặt Cron lên Centos

Nếu chưa cài đặt Cron nào thì bạn dùng lệnh 

sudo yum install cronie

Kiểm tra Cron đã được Active hay chưa

Câu lệnh kiểm tra 

sudo systemctl status crond.service

Nếu kết quả "Active" thì cron của bạn đã được chạy

Setting cho Cronjob

Sử dụng lệnh để vào cấu hình Cronjob

sudo cat /etc/crontab

Kết quả là :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
37 * * * * root run-parts /etc/cron.hourly
23 5 * * * root run-parts /etc/cron.daily
19 3 * * 0 root run-parts /etc/cron.weekly
23 0 6 * * root run-parts /etc/cron.monthly

Trong đó theo thứ tự lần lượt là 

phút giờ ngày tháng ngày-trong-tuần user [câu lệnh]

Ví dụ câu lệnh sau sẽ được thực thi vào lúc 24h các ngày trong tuần sẽ như sau 

0 0 * * * root /sample_command >/dev/null 2>&1

Các kí tự * được thay thế bởi một trong các kí tự sau:

  • : bất kì giá trị nào
  • ,: danh sách các giá trị, liệt kệ các giá trị
  • - : khoảng giá trị, là giá trị từ... đến ...
  • / : theo bước nhảy của giá trị tính từ 0

Ví dụ - Chạy 2 s một lần, bắt từ 0s ,2s, 3s ,....

0,2,4,6,8,10,12,14,16,18,20.... 58 * * * * *

Ví dụ - Chạy từ giây 1 đến giây thứ 6

1-6 * * * * *

Ví dụ -  Chạy cron jobs với bước nhảy 8, tính từ giay thứ 5, tương ứng: 5,13,21,29

5/8 * * * *

Khởi động lại Cron Jobs

Lệnh khởi động lại Cron khi cần

sudo systemctl restart crond.service

Thêm một Cron Jobs

Dùng lênh dưới để mở file cronjobs

crontab -e

Chèn lệnh cron jobs rồi lưu lại, ví dụ: tự động renew certbot vào 1h sáng ngày 14,28 hằng tháng 

TH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 1 14,28 * * certbot renew --dry-run >> /logs/certbot-cron.log 2>&1

Hiển thị tất cả Cron Jobs hiện tại

Để hiển thị các Cron jobs đang chạy ta dùng lênh:

crontab -l