crontab haftanın günü mü ayın günü mü?


14

Bunu birkaç farklı linux ve freebsd sisteminde / etc / crontab'a ekledim:

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * 2 root /sbin/shutdown -r now

Her ayın 3. Salı günü yeniden başlatmak istiyorum. Ancak, tüm sistemler bu ayın 3. Çarşamba günü (19'uncu) yeniden başlatıldı.

Neyi yanlış yapıyorum?

Güncelleme : Aşağıdaki Ranon cevabı sayesinde, aşağıdaki revizyon işe yarayacak gibi görünüyor, herkes onaylayabilir mi veya bunu yapmanın daha iyi bir yolu var mı?

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now

Yanıtlar:


16

Bir bak man 5 crontab.

Not: Bir komutun yürütme günü iki alanla belirtilebilir - ay günü ve haftanın günü. Her iki alan da kısıtlanmışsa (örn. * Değil), bu alanlardan biri geçerli saatle eşleştiğinde komut çalıştırılır. Örneğin, `` 30 4 1,15 * 5 '', bir komutun her ayın 1 ve 15'inde, ayrıca her Cuma saat 4: 30'da çalıştırılmasına neden olur. Bununla birlikte, komuta bir test ekleyerek istenen sonucu elde edebilirsiniz (aşağıdaki ÖRNEK KRON DOSYASI'ndaki son örneğe bakın).

Bu nedenle sunucularınız her gün 15-21 ve her salı günleri yeniden başlamalıdır.

Sayfaların örneğine bir göz atın:

# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +%u) -eq 6 && echo "2nd Saturday"

6
Bu ciddi bir tasarım hatası gibi görünüyor. Her gün 15-21 ve her salı istesem iki ayrı crontab girişi yapardım. Ayrı bir teste başvurmak çirkin bir hack'tir. Bununla birlikte, geçici bir çözüm sağladığınız için teşekkür ederiz!
Laurence Gonsalves
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.