İki kez arasında her 5 dakikada bir cron işi yapın


18

Bir crontab'da iş günlerinde bir başlangıç ​​zamanı ile bir bitiş zamanı arasında her 5 dakikada bir çalışan bir iş belirtmenin bir yolu var mı?

Güncelleme Başlangıç ​​ve bitiş saatlerimin yuvarlak saatlerde olmaması önemli. Bu nedenle, saat sütununda 9-5 belirtmek yeterli değildir. 9: 30-17: 30 istiyorum.

Yanıtlar:


24

Bunu parça parça yapmanız gerekecek:

30-59/5 9 * * * script.sh
*/5 10-16 * * * script.sh
0-30/5 17 * * * script.sh

1

Eğer Ignacio Vazquez-Abrams'ın cevabı komut parametrelerinin çok sayıda ihtiyacı veya çağırma kriterleri önemsiz olmayan, çünkü gerçekten örneğin, sizin için çalışmıyor (ya da değil zamana bağlı), sonra alternatif bir yaklaşım basit hale getirmektir wrapper betiğini düzenli olarak arayın ve wrapper betiğinin geçerli saati kontrol etmesini ve ana betiği çağırmasını sağlayın.

Örneğin:

#/bin/bash

# Check to see if we should run the script now.
HOUR=$(date +%H)
MINUTE=$(date +%M)
if test $HOUR -lt 9; then exit 0; fi
if test $HOUR -eq 9 -a $MINUTE -lt 30; then exit 0; fi
if test $HOUR -eq 17 -a $MINUTE -gt 30; then exit 0; fi
if test $HOUR -gt 17; then exit 0; fi

# All checks passed; we should run the script now.
exec script.sh ... long list of parameters ...

Bu, yürütme ölçütlerinin cron'un sözdiziminden daha karmaşık bir şekilde kodlanmasına izin verir, düzenli olarak bir kabuk ve ayrı bir komut dosyası çağırmanın nispeten küçük bir pahasına.

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.