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.
Sedikit pemilih di sini, bagian 5 di halaman manual adalah untuk Format File dan Konvensi, jadi implementasi tidak cukup. Ini menentukan format file dan sering memiliki contoh
Steve Buzonas
7 adalah hari Minggu? Saya pikir 0 adalah hari Minggu? (Dan jika dimulai pada 1, saya pikir 1 adalah hari Minggu.)
felwithe
@felwithe Sunday adalah 0 dan 7, jadi Anda dapat memilih mana yang paling cocok dengan hari pertama dalam seminggu di lokal Anda (Senin vs Minggu).
László van den Hoek
Saya pikir ini tidak benar, sehingga membantu saya mengerti: 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.
Gabriel Staples
Tapi ... Saya tidak tahu kapan anacron benar-benar berjalan atau bagaimana hal itu menentukan itu. Apakah kamu?
Gabriel Staples
8
@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).
Jawaban:
Saya memberikan jawaban alternatif di sini meskipun Trevor benar.
Kata
@weekly
kunci cron tidak persis seperti yang dia sebutkan. Namun , sebagian besar distribusi menggunakanrun-parts
untuk menjalankan file crontab terjadwal mereka sendiri (setiap jam, harian, mingguan dan bulanan) yang tidak menggunakan kata kunci cron.Misalnya , Ubuntu memiliki
/etc/cron.weekly
file yang berisi file terpisah untuk setiap cronjob.Ini umumnya didefinisikan dalam
/etc/crontab
Rilis karma Ubuntu 9,10 memiliki yang berikut di
/etc/crontab
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 crontab
alih-alih adilman crontab
. Yang terakhir hanya akan memberi Anda sintaks untuk perintah crontab. Yang pertama memberi Anda detail implementasi crontab.sumber
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
. Ini tidak benar karenatest -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, sehinggarun-parts
tidak akan pernah benar-benar dijalankan olehcron
! Sebaliknya,anacron
harus menanganinya, kan? Tabel Aanacron di "/ etc / anacrontab" menunjukkan ini untuk mingguan:,7 10 cron.weekly run-parts --report /etc/cron.weekly
yang 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.
sumber
Jawabannya terletak pada halaman manual untuk crontab itu sendiri, (
man 5 crontab
):Jadi, itu
0 0 * * 0
adalah 00:00 (pada tanggal berapa pun setiap bulan), asalkan hari Minggu (hari kerja 0).sumber