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