Rain Wiki · Linux

cron và crontab

Cách cron chạy các tác vụ theo lịch trình, năm trường thời gian của crontab, vị trí lưu trữ các tệp cron hệ thống và cách so sánh với systemd timers.

Linux · Rain Wiki

cron là daemon Unix cổ điển dùng để chạy các lệnh theo lịch trình. Mỗi người dùng có một crontab, được chỉnh sửa bằng lệnh crontab -e, trong đó mỗi dòng có năm trường thời gian (phút, giờ, ngày trong tháng, tháng, ngày trong tuần) theo sau là lệnh cần thực thi. Các tác vụ hệ thống nằm trong /etc/crontab và /etc/cron.d/.

Các trường thời gian

'30 2 * * *' nghĩa là 02:30 mỗi ngày; '*/10 * * * *' mỗi mười phút; '0 9 * * 1' 09:00 mỗi thứ Hai. Ngày trong tuần 0 và 7 là Chủ Nhật.

Các tệp hệ thống

Các tệp trong /etc/cron.d/ và /etc/crontab có thêm một trường là tên người dùng, nằm giữa thời gian và lệnh. Các thư mục như /etc/cron.daily chứa các tập lệnh chạy mỗi ngày một lần.

Những lỗi thường gặp

cron chạy với môi trường tối giản: hãy sử dụng đường dẫn đầy đủ hoặc thiết lập PATH trong crontab. Đầu ra sẽ được gửi qua email cho chủ sở hữu hoặc bị mất; hãy chuyển hướng nó vào một tệp nhật ký. Ký tự % có ý nghĩa đặc biệt trong các dòng crontab và phải được thoát bằng \%.

systemd timers

Trên các bản phân phối sử dụng systemd, các đơn vị .timer là một giải pháp thay thế với khả năng ghi nhật ký vào journal, độ trễ ngẫu nhiên và khả năng thực thi lại các tác vụ bị bỏ lỡ (Persistent=true).

Cách thêm một tác vụ hàng ngày

  1. Mở crontab của bạn: crontab -e
  2. Thêm một dòng, ví dụ: 30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  3. Lưu và thoát; cron sẽ tự động cập nhật thay đổi.
  4. Liệt kê các tác vụ: crontab -l

Lưu ý

  • 'crontab -r' xóa toàn bộ crontab mà không cần xác nhận.
  • Hãy kiểm tra lệnh thủ công với cùng người dùng trước khi lên lịch cho nó.

Nguồn

Cập nhật lần cuối: 2026-10-08

Bài liên quan