Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Sao lưu database mỗi đêm, dọn file tạm mỗi tuần, gửi báo cáo mỗi sáng thứ Hai: những việc lặp lại như vậy không nên làm bằng tay. Cron là bộ lập lịch có sẵn trên Linux, đơn giản nhưng cực kỳ bền bỉ. Hiểu cú pháp của nó là đủ để tự động hóa rất nhiều thứ.
Cron là dịch vụ chạy nền, kiểm tra mỗi phút xem có tác vụ nào đến giờ. Danh sách tác vụ của mỗi người dùng nằm trong file crontab. Bạn chỉnh bằng:
crontab -e
crontab -lLệnh đầu mở trình soạn thảo để sửa, lệnh sau liệt kê các tác vụ hiện có.
# phut gio ngay thang thu lenh
* * * * * /duong/dan/lenh| Trường | Giá trị |
|---|---|
| Phút | 0-59 |
| Giờ | 0-23 |
| Ngày trong tháng | 1-31 |
| Tháng | 1-12 |
| Thứ trong tuần | 0-7 (0 và 7 đều là Chủ nhật) |
Ký hiệu đặc biệt: * là mọi giá trị, , liệt kê (ví dụ 1,15), - là khoảng (ví dụ 1-5), / là bước (ví dụ */10 là mỗi 10).
0 2 * * * /opt/scripts/backup.sh
*/15 * * * * /opt/scripts/kiem-tra.sh
30 8 * * 1 /opt/scripts/bao-cao-tuan.sh
0 0 1 * * /opt/scripts/don-dep-thang.sh
0 9-17 * * 1-5 /opt/scripts/gio-hanh-chinh.shTheo thứ tự: 2 giờ sáng mỗi ngày; mỗi 15 phút; 8 giờ 30 sáng thứ Hai hằng tuần; 0 giờ ngày mùng 1 hằng tháng; đầu mỗi giờ từ 9 đến 17 giờ các ngày trong tuần từ thứ Hai đến thứ Sáu.
PATH rất tối giản. Hãy dùng đường dẫn tuyệt đối cho cả lệnh lẫn file.date.\%. Cách đơn giản là đưa lệnh vào script.flock.0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1Phần >> ghi nối vào file, còn 2>&1 đưa cả luồng lỗi vào cùng chỗ. Nhờ đó khi sự cố xảy ra bạn có manh mối để điều tra.
*/5 * * * * flock -n /tmp/dongbo.lock /opt/scripts/dongbo.shCờ -n khiến lệnh bỏ qua nếu lần chạy trước còn đang giữ khóa.
#!/bin/bash
set -euo pipefail
NGAY=$(date +%F)
tar -czf /backup/web-$NGAY.tar.gz /var/www/app
find /backup -name 'web-*.tar.gz' -mtime +7 -delete
echo "Xong $NGAY"Script nén thư mục web theo ngày rồi xóa bản sao lưu cũ hơn 7 ngày. Dòng set -euo pipefail giúp script dừng ngay khi có lỗi thay vì chạy tiếp một cách mù quáng. Nhớ cấp quyền chạy bằng chmod +x.
systemd timer cho phép ghi nhật ký tốt hơn và xử lý trường hợp máy tắt đúng lúc đến hẹn. Nhiều framework (như Laravel) cũng có bộ lập lịch riêng, chỉ cần một dòng cron chạy mỗi phút để kích hoạt. Hãy chọn công cụ phù hợp với nhu cầu của bạn.
Nhớ cấu trúc năm trường, dùng đường dẫn tuyệt đối, luôn ghi log và đề phòng tác vụ chạy chồng nhau là bạn đã làm chủ cron. Hãy thử lên lịch một tác vụ nhỏ ngay hôm nay, ví dụ sao lưu thư mục dự án mỗi đêm.
Muốn học cách tự động hóa vận hành trên máy chủ một cách bài bản, hãy xem các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment