Jawaban:
Saya memberikan jawaban alternatif di sini meskipun Trevor benar.
Kata @weeklykunci cron tidak persis seperti yang dia sebutkan. Namun , sebagian besar distribusi menggunakan run-partsuntuk menjalankan file crontab terjadwal mereka sendiri (setiap jam, harian, mingguan dan bulanan) yang tidak menggunakan kata kunci cron.
Misalnya , Ubuntu memiliki /etc/cron.weeklyfile yang berisi file terpisah untuk setiap cronjob.
Ini umumnya didefinisikan dalam /etc/crontab
Rilis karma Ubuntu 9,10 memiliki yang berikut di /etc/crontab
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Jadi crontab mingguan di Ubuntu dijalankan pada 6.47 pagi pada hari Minggu
Catatan: saat mencari halaman manual untuk implementasi crontab, Anda ingin menggunakan man 5 crontabalih-alih adil man crontab. Yang terakhir hanya akan memberi Anda sintaks untuk perintah crontab. Yang pertama memberi Anda detail implementasi crontab.
So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Ini tidak benar karena test -x /usr/sbin/anacron ||bagian dari perintah mengatakan HANYA menjalankan hal-hal di sebelah kanan ||jika "/ usr / sbin / anacron" TIDAK dapat dieksekusi atau tidak ada, tetapi itu memang ada, sehingga run-partstidak akan pernah benar-benar dijalankan oleh cron! Sebaliknya, anacronharus menanganinya, kan? Tabel Aanacron di "/ etc / anacrontab" menunjukkan ini untuk mingguan:, 7 10 cron.weekly run-parts --report /etc/cron.weeklyyang berarti pekerjaan mingguan dijalankan setiap hari ke-7 tanpa penundaan 10 menit.
@weekly sama dengan: 0 0 * * 0
Jadi itu akan berjalan pada pukul 00:00 pada hari Minggu.
Jawabannya terletak pada halaman manual untuk crontab itu sendiri, ( man 5 crontab):
Spesifikasi waktu khusus "julukan" ini didukung, yang menggantikan 5 bidang waktu dan tanggal awal, dan diawali oleh karakter '@':
@reboot : Run once after reboot. @yearly : Run once a year, ie. "0 0 1 1 *". @annually : Run once a year, ie. "0 0 1 1 *". @monthly : Run once a month, ie. "0 0 1 * *". @weekly : Run once a week, ie. "0 0 * * 0". @daily : Run once a day, ie. "0 0 * * *". @hourly : Run once an hour, ie. "0 * * * *".
Jadi, itu 0 0 * * 0adalah 00:00 (pada tanggal berapa pun setiap bulan), asalkan hari Minggu (hari kerja 0).