Cronjob planlanan zamandan önce çalışır, ne olabilir?


10

Cumartesi için planlanan crontab'ın altında 19-23. Tahmininiz var mı?

00 21 19-23 * 6 <command>

1
/etc/cron.d/mdadmUbuntu ve Debian'da biraz ilham alabilirsiniz . Her ayın ilk Pazar günü şöyle çalışır:57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
kasperd

teşekkürler kasperd, 0 18 * * 6 [date +\%d -le 07] && <task> her ayın ilk cumartesi günü yapılması gereken benim için iyi çalışıyor.
simer

Yanıtlar:


16

Cron ifadesi şu anlama gelir:

At 21:00 on the 19, 20, 21, 22 and 23rd of every month and every Saturday.

Bu yüzden açıkça cron'a 20. cuma günü koşmasını söyledi. Bunun nedeni:

When the schedule specifies both date and weekday, they're combined with a logical OR,
i.e. the job will run if current_minute == scheduled_minute 
&& current_hour == scheduled_hour && current_month == scheduled_month && 
(current_day == scheduled_date OR current_weekday == scheduled_weekday).

Bu bilgiler şu kullanışlı Cron aracından alınmıştır: http://crontab.guru/

İşinizin Cumartesi olduğu günlerde çalışmasını sağlamak için şunları kullanabilirsiniz:

00 21 19-23 * * test $(date +%u) -eq 6 && command

Bu çözüm haftanın crontab gününden ayın gününe mi?


6
%Cronjobs'ta özel bir anlamı olan dikkat edin - komutun stdin'ini ayırır.
user1686
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.