Câu trả lời:
Để hoàn thiện, các công việc trong ví dụ /etc/cron. Ndhourly,d Daily,weekly,monthly} được chạy liên tục. Kịch bản phần chạy vòng lặp trên tất cả các tệp trong thư mục này.
02 4 * * * root run-parts /etc/cron.daily
Vì vậy, bạn có thể sử dụng kết hợp với quy ước đặt tên (tương tự như đánh số /etc/init.d/rc*.d
chẳng hạn) để đảm bảo các công việc chạy tuần tự.
0 * * * *
bạn đã đăng trước đó) thì như những người khác đã đăng, không có gì đảm bảo về thứ tự họ sẽ chạy. Họ có thể chạy song song trên hệ thống đa lõi, AFAIK thứ tự mà họ chạy thậm chí có thể khác nhau mỗi ngày. Quy ước đặt tên mà tôi đã đề cập kết hợp với một phần chạy hoặc sử dụng tập lệnh chính gọi các tập lệnh sao lưu thực tế là cách duy nhất để đảm bảo các tập lệnh được thực thi theo một thứ tự cụ thể.
Các tác vụ được liệt kê trong cron sẽ chạy song song, giống như các quy trình thường làm. Không có cách nào để chắc chắn cái nào sẽ bắt đầu trước, và không có cách nào trong cron để đảm bảo nhiệm vụ A đã hoàn thành trước khi nhiệm vụ B bắt đầu.
Cron là một daemon (dịch vụ) chạy liên tục; tuy nhiên, nó đọc crontabs mỗi phút một lần.
Trình tự chính xác trong đó các công việc được thực thi sẽ phụ thuộc vào việc triển khai hệ thống của bạn.
Các tệp lỏng mà một số bản phân phối đặt bên trong /etc/cron.d/ được quét để cài đặt bộ đếm thời gian cron của chúng, vì các tệp này tuân theo cú pháp crontab (5) thông thường.
Thứ tự các công việc riêng lẻ được thực hiện tùy thuộc vào lịch trình bạn đặt cho chúng, rõ ràng.
Họ sẽ chạy song song. Bạn có thể sử dụng các phương pháp sau để chạy các quy trình một cách tuần tự.
# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2
# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2
# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2