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.