Crontab Haftanın Günü sözdizimi


204

Crontab'da Haftanın Günü alanı 0 - 6veya 1 -7?

Bu konuda çelişkili bilgiler görüyorum. wikipedia devletleri 0-6ve gördüğüm diğer siteler 1-7.

Ayrıca, ima ya da yanlış ya 0da 7yanlış ne olurdu ? yani cron hala çalışır mıydı?

Yanıtlar:


374

0ve 7her ikisi de Pazar gününü temsil eder, istediğinizi kullanabilirsiniz, böylece 0-6 veya 1-7 yazmak aynı sonucu verir.

@Henrik önerdiği gibi Ayrıca, gibi günlerin kısaltılmış adıyla numaralarını değiştirmek mümkündür MON, THUvb:

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

grafiksel:

 ┌────────── 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

Son olarak, gün be gün belirtmek isterseniz, günleri virgülle ayırabilirsiniz, örneğin SUN,MON,THUkomutu yalnızca pazar günleri, pazartesi günleri perşembe uygulayacaktır.

Wikipedia'nın Cron hakkındaki makalesinde daha fazla ayrıntı okuyabilirsiniz .


4
Tamam ben Pazar günü bir 0 veya 7 olabilir fark etmedi. teşekkürler
Marty Wallace

16
: Yapamayacağı unutmayın Sat-Sun, sadece 6-7veyaSat,Sun
pkowalczyk

Bunun büyük / küçük harfe duyarlı olmadığını doğrulayabilir misiniz? Sen arasında birkaç kez geçmek SUN, Sun, Sundaysenin yanıtta
MichaelChirico

2
@MichaelChirico oh, iyi bir nokta. Wikipedia'nın Cron I okuduğum makalesini kontrol etme Ay ve hafta içi kısaltmaları büyük / küçük harfe duyarlı değildir .
fedorqui 'SO' zarar vermeyi durdur '

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

Yukarıda da görebileceğiniz gibi, daha önce de belirtildiği gibi, numaralar 0ve 7her ikisi de Pazar gününe atanır. Ayrıca listelenen haftanın İngilizce kısaltılmış günleri de vardır, bunlar crontab'da da kullanılabilir.

Sayı veya Kısaltma Kullanım Örnekleri

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

Dört örnek de aynı şeyi yapıyor ve her Cuma, Cumartesi ve Pazar günleri saat 9.15'te bir komut veriyor.

Detayda

İki sayıya 0ve 7Pazar gününe sahip olmak, ile başlayan 0veya biten hafta içi aralıklar yazmak için yararlı olabilir 7. Böylece, Pazar gününden başlayarak veya onunla biten aralıkları, örneğin 0-2veya gibi aralıklarla yazabilirsiniz 5-7(aralıklar daha düşük sayıyla başlamalı ve daha yüksekle bitmelidir). Kısaltmalar hafta içi bir aralığı tanımlamak için kullanılamaz.


1
Anlaşılır olması için, “Kısaltmalar hafta içi bir aralığı tanımlamak için kullanılamaz.” Buradaki ifade, kısaltmaları tire işareti karakteriyle, virgülle ayıramayacağını söylemenin bir yolu gibi görünmektedir. Başka bir deyişle, Fri,Sat,Sunkısaltılamaz Fri-Sun.
Patrick Dark

9

MonPazartesi, TueSalı vb.Gibi gün adlarını da kullanabilirsiniz . Daha insan dostu.


Bu, bazı dağıtımlarda işe yaramaz; Ubuntu 14.04.3 LTS ile test yaptım, "/tmp/crontab.Nuq9GE/crontab":24: haftanın kötü günü" aldım
0x4B1D

4
@ Nikita yazım hataları veya fazladan boşluk olup olmadığını kontrol edin. Ubuntu 14.04.3 üzerindeki crontab'ımda hem "Mon-Cum" hem de "Thu" var ve her ikisi de gayet iyi çalışıyor. Karakterlerden herhangi biri arasında boşluk varsa, bunun bir hata ile sonuçlanacağından şüpheleniyorum.
Dale Anderson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.