Trước khi vào vấn đề chính, các bạn có thể tham khảo CronJob là gì?
Cron Jobs là gì?
Cron Jobs là chức năng dùng để thực thi định kì lệnh nào đó trong một khoảng thời gian được xác định trước bởi quản trị viên hosting hay VPS.
Hiểu đơn giản, Cron Job là một chức năng giúp lên lịch tự động thực hiện một số công việc nào đó.
Tự động hoá các tác vụ cơ bản của máy chủ – tính năng nổi bật của Cron Jobs
- Tự động Backup dữ liệu hệ thống định kì
- Tự động gửi email: email định kì cho khách hàng, gửi báo giá hay thông báo các bản tin mới theo thời điểm do khách hàng của bạn tùy chọn, …
- Tự động thực hiện một lệnh nào đó trong Linux do người dùng tạo ra: cập nhật số liệu, quét chỉ mục, cache dữ liệu hệ thống, …
Ưu điểm khi sử dụng Cron Jobs
Nhờ Cron Jobs, bạn sẽ tiết kiệm được lượng lớn thời gian, không phải quản lý máy chủ lưu trữ và các tác vụ liên quan. Nếu là nhân viên văn phòng, bây giờ bạn hoàn toàn có thể về nhà, thư giãn sau một ngày miệt mài 8 tiếng trong văn phòng thay vì dành buổi tối của họ sao lưu các tập tin và quản lý địa chỉ liên lạc.
Song song đó, bạn cũng không cần phải cố gắng ghi nhớ và tạo đi tạo lại những công việc định kì.
Khuyết điểm Cron Jobs
Cron Jobs chỉ có thể thực hiện câu lệnh theo chu kỳ 1 phút trở lên, trong trường hợp muốn thực hiện các công việc lặp lại theo chu kỳ 1s, 5s, 10s, … thì CronTab sẽ không làm được.
Để CronJob có thể thực hiện theo chu kỳ 1s, 2s, 3s, …. , bạn hãy yêu cầu nhà cung cấp dịch vụ hỗ trợ nhé.
Nội dung trên tham khảo tại hoclaptrinh.vn
Câu lệnh tổng quát
Để mở Crontab, các bạn sử dụng lệnh sau: VISUAL=nano crontab -e
find $LOCATION -name $REQUIRED_FILES -type f -mmin +1 -delete > /dev/null
Sau khi gõ lệnh xong, bạn nhấn tổ hợp Ctrl + O
để lưu và Ctrl + X
để thoát Crontab.
After 2 minutes delete files older than 1 minute – CronJob
Mình muốn xóa file đã cũ hơn 1 phút trong thư mục test sau 2 phút.
*/2 * * * * find /home/ubuntu/test -name '*.*' -mmin +1 -delete > /dev/null
Giải thích:
*/2 * * * * : cứ 2 phút thì làm việc nào đó, bạn có thể chỉnh sửa giá trị này find /home/ubuntu/test : tìm đến thư mục test -name : Tên file '*.*' nghĩa là bất kỳ tên file với mọi định dạng -mmin +1 -delete : file cũ hơn 1 phút, bạn có thể chỉnh sửa giá trị này.
Ví dụ:
After 5 minutes delete files older than 3 minute – CronJob
*/5 * * * * find /home/ubuntu/test -name '*.*' -mmin +3 -delete > /dev/null
Vậy là mình đã hướng dẫn cho các bạn thực hiện xóa file cũ hơn X phút mỗi phút trong lunix.
Tự động gia hạn chứng chỉ Let’s Encrypt
Chứng chỉ Let’s Encrypt sẽ hết hạn sau 90 ngày. Mình khuyến khích bạn tự động gia hạn chứng chỉ của bạn. Ở đây mình thêm một cron
công việc vào tệp crontab hiện có để thực hiện việc này.
- Mở tệp crontab
crontab -e
- Thêm
certbot
lệnh để chạy hàng ngày. Trong ví dụ này, mình chạy lệnh hàng ngày vào buổi trưa. Lệnh kiểm tra xem chứng chỉ trên máy chủ có hết hạn trong vòng 30 ngày tới hay không và gia hạn chứng chỉ nếu có. Chỉ--quiet
thị cho biếtcertbot
không tạo ra đầu ra.
0 12 * * * /usr/bin/certbot renew --quiet
- Lưu và đóng tập tin. Tất cả các chứng chỉ đã cài đặt sẽ được tự động gia hạn và tải lại.
Chúc các bạn thành công.