Sintaksis Crontab Day of the Week

204

Di crontab menjalankan bidang Day of the Week 0 - 6 atau 1 -7?

Saya melihat informasi yang saling bertentangan mengenai hal ini. status wikipedia0-6 dan situs lain yang saya lihat adalah 1-7.

Juga apa implikasinya atau menggunakan 0atau 7salah? yaitu apakah cron akan tetap berjalan?

Marty Wallace
sumber

Jawaban:

373

0dan 7keduanya berdiri untuk hari Minggu, Anda dapat menggunakan yang Anda inginkan, jadi menulis 0-6 atau 1-7 memiliki hasil yang sama.

Juga, seperti yang disarankan oleh @Henrik, adalah mungkin untuk mengganti nomor dengan nama singkat dari hari, seperti MON, THU, dll:

0 - Sun      Sunday
1 - Mon      Monday
2 - Tue      Tuesday
3 - Wed      Wednesday
4 - Thu      Thursday
5 - Fri      Friday
6 - Sat      Saturday
7 - Sun      Sunday

Secara grafis:

 ┌────────── minute (0 - 59)
 │ ┌──────── hour (0 - 23)
 │ │ ┌────── day of month (1 - 31)
 │ │ │ ┌──── month (1 - 12)
 │ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
 │ │ │ │ │                1 - 7 => Monday - Sunday)
 ↓ ↓ ↓ ↓ ↓
 * * * * * command to be executed

Akhirnya, jika Anda ingin menentukan hari demi hari, Anda dapat memisahkan hari dengan koma, misalnya SUN,MON,THUakan menjalankan perintah hanya pada hari Minggu, Senin pada hari Kamis.

Anda dapat membaca detail lebih lanjut di artikel Wikipedia tentang Cron .

fedorqui 'SO berhenti merugikan'
sumber
4
ok itulah yang saya tidak sadari Minggu bisa menjadi 0 atau 7. terima kasih
Marty Wallace
15
Ketahuilah bahwa Anda tidak dapat melakukan Sat-Sun6-7Sat,Sun
:,
Bisakah Anda mengonfirmasi ini tidak peka huruf besar-kecil? Anda beralih beberapa kali antara SUN, Sun, Sundaydalam tanggapan Anda
MichaelChirico
1
@MichaelChirico oh, bagus. Memeriksa artikel Wikipedia tentang Cron yang saya baca Singkatan bulan dan hari kerja tidak peka terhadap huruf besar-kecil .
fedorqui 'SO stop harming'
104
    :-) Sunday    |    0  ->  Sun
                  |  
        Monday    |    1  ->  Mon
       Tuesday    |    2  ->  Tue
     Wednesday    |    3  ->  Wed
      Thursday    |    4  ->  Thu
        Friday    |    5  ->  Fri
      Saturday    |    6  ->  Sat
                  |  
    :-) Sunday    |    7  ->  Sun

Seperti yang Anda lihat di atas, dan seperti yang dikatakan sebelumnya, angka 0dan7 keduanya ditugaskan untuk hari Minggu. Ada juga bahasa Inggris yang disingkat hari dalam seminggu, yang juga dapat digunakan di crontab.

Contoh Penggunaan Angka atau Singkatan

15 09 * * 5,6,0             command
15 09 * * 5,6,7             command
15 09 * * 5-7               command
15 09 * * Fri,Sat,Sun       command

Keempat contoh melakukan semua hal yang sama dan menjalankan perintah setiap hari Jumat, Sabtu, dan Minggu pukul 9.15.

Secara terperinci

Memiliki dua angka 0dan 7untuk hari Minggu dapat bermanfaat untuk menulis rentang hari kerja dimulai dengan 0atau diakhiri dengan 7. Jadi, Anda dapat menulis rentang mulai dengan hari Minggu atau berakhir dengan itu, suka 0-2atau 5-7misalnya (rentang harus dimulai dengan angka yang lebih rendah dan harus diakhiri dengan yang lebih tinggi). Singkatan tidak dapat digunakan untuk menentukan rentang hari kerja.

Henrik
sumber
1
Untuk kejelasan, "Singkatan tidak dapat digunakan untuk menentukan rentang hari kerja." Pernyataan di sini tampaknya merupakan cara untuk mengatakan bahwa seseorang tidak dapat memisahkan singkatan dengan karakter tanda hubung minus, hanya koma. Dengan kata lain, Fri,Sat,Suntidak bisa disingkat menjadi Fri-Sun.
Patrick Dark
8

Anda juga dapat menggunakan nama hari seperti Monuntuk hari Senin, Tueuntuk hari Selasa, dll. Lebih ramah terhadap manusia.

Cyril Bouthors
sumber
Ini tidak akan berfungsi untuk beberapa distribusi; menguji dengan Ubuntu 14.04.3 LTS, saya mendapat "/tmp/crontab.Nuq9GE/crontab":24: bad day-of-week"
0x4B1D
3
@Nikita memeriksa kesalahan ketik atau ruang ekstra. Saya memiliki "Sen-Jum" dan "Kam" di crontab saya di Ubuntu 14.04.3 dan keduanya bekerja dengan baik. Saya menduga jika ada spasi di antara salah satu karakter, Anda akan berakhir dengan kesalahan.
Dale Anderson