Cron işini her N dakikada bir artı ofseti çalıştır


251

*/20 * * * *

Her 20 dakikada bir çalışmasını sağlar, her 20 dakikada bir görev yapmak istiyorum, saat 5'ten başlayarak, bu Cron ile mümkün mü? Olurdu:

5/20 * * * * ?


10
Zaman sistemimizin tam olarak 1,2,3,4,5 ve 6'ya bölünmesi gerektiğine karar veren Babiller'e teşekkürler
arivero

3
2 ve 3 ile bölünebiliyorsa 6 ile de bölünebilir
Ziofil

Yanıtlar:


514

Bir görevi saatin 5'inden başlayarak her 20 dakikada bir çalıştırmak için şunu deneyin:

 5-59/20 * * * *

açıklama

Bir *dakika alanında aynı 0-59/1yerde 0-59bir aralığı ve 1bir adım . Komut (0) aralığının ilk dakikasında , sonra ilk (1) adımından sonuncuya (59) kadar olan tüm ardışık dakikalarda çalışır .

Bu nedenle */20 * * * *0 dakika, 20 dakika sonra ve 40 dakika sonra çalışacaktır - bu her 20 dakikada bir aynıdır. Ancak, */25 * * * *0 dakika, 25 dakika sonra ve 50 dakika sonra çalışacaktır - bu her 25 dakikada bir aynı değildir. Bu nedenle, dakika alanında 60'a eşit olarak bölünen bir adım değeri kullanmak genellikle istenir.

Bu nedenle, başlangıç ​​zamanını dengelemek için aralığı açıkça belirtin ve ilk değeri ofset miktarına ayarlayın.

Örnekler

5-59/20 * * * * 5 dakika sonra, 25 dakika sonra ve 45 dakika sonra çalışır.

10-59/25 * * * * 10 dakika sonra ve 35 dakika sonra çalışır.

1-59/2 * * * * her garip dakikada bir çalışacak.


3
mükemmel çalışır. Bunu nasıl buldun? Beni belgelere yönlendirebilir misin? Teşekkürler.
AJP

12
Çeşitli Google aramaları beni bu Sunucu Hatası yanıtına yönlendirdi . Özellikle diğer sonuçlar dakika modülü adımının sıfıra eşit olması gerektiğini gösterdiğinden , beni gerçekten şaşırtan bir hata vardı . Sonunda bana cevabı veren bu manuel sayfayı buldum . Sonuç olarak, şimdi düzeltilen Sunucu Hatası yanıtı hakkında yorum yapabildim. IBM sayfasını bulmak için kullandığım gerçek arama terimlerini hatırlamıyorum.
toxalot

3
Teşekkürler ve çok iyi çalışmalar @toxalot, Keşke size "Yorulmaz Araştırmacı" rozeti verebilseydik! : P
AJP

5
LOL. Ben her 10 dakikada bir (5 ile ofset) bir iş çalıştırmak gerekiyordu ve gerçekten virgülle ayrılmış bir liste kullanmak istemiyordu, bu yüzden cevabı bulmak için kararlıydı.
toxalot

2
CPanel ne yazık ki böyle görünmüyor :(
Robert Gitti

53

Elbette!

5,25,45 * * * * /your/cron

2
Teşekkürler. Bunu yaptım, daha zarif bir çözüm olabileceğini umuyordum.
AJP

13
Bazen basit çözüm daha iyidir çünkü okunması ve anlaşılması kolaydır. Bunun 5-59/20mümkün olduğunu bilmekten hoşlanıyorum , ancak 5,25,45bunun ne yaptığını hemen çok açık olması avantajına sahip.
thomasrutter

2
sadece adımınız yeterince büyükse
Tebe

3
Bu çok daha iyi bir örnek. İşin ne zaman başladığını anlamak için 0 bilişsel yük gerekir.
Dylan Pierce

11

Deneyebilirsin: */5 * * * * sleep N; your job


4
Bu konuda yanlış bir şey görmüyorum - aslında bu, certbot'un cron işinin sunucu yükünü dengede tutmaya yardımcı olan rastgele bir ofset elde etmesine çok benziyor. emin tüm bu downvotes hak etmiyor
billynoah

6
Bu, rastgele bir kaç saniye uyuyacağımı merak etti. sleep `shuf -i 1-100 -n 1`hile yapar.
Laizer

kahretsin, @Laizer bana bir şeyler öğrenmemi sağladın! (teşekkürler!)
UncaAlby
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.