Khi máy tính của bạn bị tắt (hoặc cron daemon nếu không chạy), các công việc cron sẽ không được bắt đầu.
Nếu bạn có các công việc mà bạn muốn chạy sau khi thực tế tắt máy tính, hãy sử dụng anacron. Được cài đặt theo mặc định, xem "man anacron", "man anacrontab" hoặc tệp / etc / anacrontab để biết thêm.
Ubuntu sử dụng anacron theo mặc định cho các mục crontab trong:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
để lại các crontabs còn lại sẽ được xử lý bởi trình nền cron chính, cụ thể:
/etc/crontab
/etc/cron.d
/var/spool/cron
GHI CHÚ
Bản thân Anacron không chạy như một daemon, mà dựa vào các kịch bản khởi động hệ thống và chính cron để chạy.
Trên hộp Ubuntu 8.04 tôi đang xem, /etc/init.d/anacron được chạy khi khởi động và một lần nữa bằng cron mỗi sáng lúc 07:30.
README tại /usr/share/doc/anacron/README.gz có một chút thông tin hơn một chút so với trong các trang.
VÍ DỤ
Đối với các công việc "hàng ngày", "hàng tuần", "hàng tháng" đơn giản, hãy đặt một bản sao hoặc một liên kết tượng trưng đến tập lệnh vào một trong các thư mục /etc/cron. Đũadaily|weekly Anacron sẽ đảm nhiệm việc chạy nó hàng ngày / hàng tuần / hàng tháng và nếu máy tính của bạn tắt vào ngày các tập lệnh "hàng tuần" thường chạy, nó sẽ chạy chúng vào lần tiếp theo khi máy tính được bật.
Một ví dụ khác, giả sử bạn có một tập lệnh ở đây: /usr/local/sbin/maint.sh
Và bạn muốn chạy nó cứ sau ba ngày, mục tiêu chuẩn trong / etc / crontab sẽ như thế này:
# m h dom mon dow user command
0 0 */3 * * root /usr/local/sbin/maint.sh
Nếu máy tính của bạn không hoạt động vào lúc 00:00 ngày 3 tháng, công việc sẽ không chạy cho đến ngày 6.
Để có công việc thay vì chạy vào ngày 4 khi máy tính tắt và "bỏ lỡ" lần chạy thứ 3, bạn sẽ sử dụng công việc này trong / etc / anacrontab (đừng quên xóa dòng khỏi / etc / crontab):
# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh
"Độ trễ" của "5" ở trên có nghĩa là anacron sẽ đợi trong 5 phút trước khi nó chạy công việc này. Ý tưởng là để ngăn chặn anacron bắn ra mọi thứ ngay lập tức khi khởi động.