Quay lại blog
Tháng Năm 23, 2026Hướng dẫn

Cách Thiết Lập Cron Job trên Server Linux

Tìm hiểu cú pháp cron, chỉnh sửa crontab, ví dụ lịch trình phổ biến và logging cho tác vụ tự động trên VPS.

Cách Thiết Lập Cron Job trên Server Linux

Cron là trình lập lịch chuẩn của Linux để chạy script và lệnh vào thời điểm cố định — sao lưu, xóa cache, kiểm tra chứng chỉ và hơn thế nữa. Hướng dẫn này cho thấy cách dùng cron trên server Hiddence.

Cú pháp cron

Mỗi dòng có năm trường thời gian theo sau là lệnh:

bash
# ┌──────── minute (0-59)
# │ ┌────── hour (0-23)
# │ │ ┌──── day of month (1-31)
# │ │ │ ┌── month (1-12)
# │ │ │ │ ┌─ day of week (0-7, 0 and 7 = Sunday)
# │ │ │ │ │
# * * * * * command

# Every day at 3:00 AM:
0 3 * * * /usr/local/bin/backup.sh

# Every 15 minutes:
*/15 * * * * /usr/local/bin/check.sh

Chỉnh sửa crontab

Dùng crontab -e cho user hiện tại. Với tác vụ root (hầu hết job hệ thống), dùng sudo:

bash
# Edit your user crontab
crontab -e

# Edit root crontab
sudo crontab -e

# List current jobs
crontab -l
sudo crontab -l

Ví dụ phổ biến

  • 0 2 * * * — sao lưu hàng ngày lúc 2:00 sáng
  • 0 */6 * * * — mỗi 6 giờ
  • 0 0 * * 0 — mỗi Chủ nhật nửa đêm
  • */5 * * * * — mỗi 5 phút (dùng cẩn thận)
  • @reboot /path/script.sh — chạy một lần sau khi reboot
  • @daily /usr/bin/certbot renew --quiet — kiểm tra Certbot hàng ngày

Logging và gỡ lỗi

Chuyển hướng output vào file log để biết job có thất bại không:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# View cron execution in system log:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

Mẹo

  • Dùng đường dẫn tuyệt đối trong lệnh cron
  • Test script thủ công trước khi thêm vào crontab
  • Đặt MAILTO=your@email.com trong crontab để nhận email lỗi (nếu đã cấu hình mail)
  • Ưu tiên systemd timer cho phụ thuộc phức tạp trên hệ thống hiện đại
  • Không chạy tác vụ nặng mỗi phút — có thể quá tải VPS