Jawaban:
Untuk kelengkapan, pekerjaan di mis /etc/cron.{hourly ,daily ,weekly ,monthly} dijalankan secara berurutan. Script run-parts loop semua file dalam direktori ini.
02 4 * * * root run-parts /etc/cron.daily
Jadi, Anda dapat menggunakannya dalam kombinasi dengan konvensi penamaan (mirip dengan penomoran /etc/init.d/rc*.dmisalnya) untuk memastikan pekerjaan berjalan berurutan.
0 * * * *Anda posting sebelumnya) maka seperti yang lain telah diposting tidak ada jaminan pada urutan mereka akan berjalan. Mereka dapat berjalan secara paralel pada sistem multi-core, AFAIK urutan menjalankan mereka bahkan mungkin berbeda setiap hari. Konvensi penamaan yang saya sebutkan bersama dengan run-parts atau penggunaan skrip master yang memanggil skrip cadangan aktual adalah satu-satunya cara untuk memastikan skrip dieksekusi dalam urutan tertentu.
Tugas-tugas yang tercantum dalam cron akan berjalan secara paralel, sama seperti proses biasanya. Tidak ada cara untuk memastikan mana yang akan mulai lebih dulu, dan tidak ada cara dalam cron untuk memastikan tugas A telah selesai sebelum tugas B dimulai.
Cron adalah daemon (layanan) yang berjalan terus menerus; namun, ia membaca crontab satu menit sekali.
Urutan yang tepat di mana pekerjaan dieksekusi akan tergantung pada implementasi kondisi sistem Anda.
File-file longgar yang dimasukkan oleh beberapa distribusi ke dalam /etc/cron.d/ dipindai untuk pengaturan timer cronnya, karena file-file ini mengikuti sintaks crontab normal (5).
Urutan apa pekerjaan individu dieksekusi tergantung pada jadwal yang Anda tetapkan untuk mereka, jelas.
Mereka akan berjalan secara paralel. Anda dapat menggunakan metode berikut untuk menjalankan proses secara berurutan.
# 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