Her 30 dakikada bir çalıştırmak için bir cron işi nasıl alabilirim?


224

crontabBir komut dosyası yürütmek için bir giriş eklemek için her 30 dakikada bir, saat ve 30 dakika saat ya da yakın bir şey eklemek için arıyorum . Aşağıdaki var, ama 0 çalıştırmak gibi görünmüyor.

*/30 * * * *

Hangi dizeyi kullanmam gerekiyor?

Cron OSX üzerinde çalışıyor.


Crontab'ınızı çalıştırmayı başardınız mı? Sorununuz crontab olmayabilir, ancak kullanılmasını sağlamak olabilir.
Eddie

Dakikada bir tane olmak üzere 2 komut dosyası daha çalıştırıyor.
Darryl Hein

1
Aşağıdaki cevaplardan birinin işe yarayıp yaramadığını görmek için bekliyorum, önümüzdeki 30 dakikaya kadar beklemek zorundasınız ... 3 dakika içinde.
Darryl Hein

2
... 0,30'u 0,5'e değiştiremez misiniz? 0,5 çalışırsa neden 0,30 olmaz?
George Stocker

1
Bize bir saat içinde çalışıp çalışmadığını söylemedin!
Eddie

Yanıtlar:


487

Yapmak:

0,30 * * * * your_command

1
Harika çalışıyor! CentOS crontab'da, root'u 0,30 * * * * root your_commandkullandığım kullanıcı nerede olacak gibi bir şey yapmak zorunda kaldım .
prograhammer

@prograhammer - Bu çizgi bir kökün crontab'ının mı yoksa başka bir kullanıcının crontab'ının parçası mıydı?
Muhamed Huseinbašić

@ MuhamedHuseinbašić iyi bir soru, çünkü 2 farklı crontabs (küresel olan ve sonra bir kullanıcı) var. Kontrol edip görmem gerekecek ...
prograhammer

100

crontab "aralıkları" anlamıyor, sadece "zamanlamayı" anlıyor

geçerli saat: 0-23 - geçerli dakika: 0-59

örnek 1

30 * * * * your_command

bu "her saatin dakikası 30 olduğunda çalıştır" anlamına gelir (1:30, 2:30, 3:30, vb.):

örnek 2

*/30 * * * * your_command

Bu, "her saatin dakikası 30'a eşit olarak bölünebiliyorsa çalıştır" anlamına gelir (1:30, 2:00, 2:30, 3:00, vb.)

örnek 3

0,30 * * * * your_command

Bu, "her saatin dakikası 0 veya 30 olduğunda çalıştır" anlamına gelir (1:30, 2:00, 2:30, 3:00, vb.):

örnek 2 ile aynı sonuçları elde etmenin başka bir yolu

örnek 4

19 * * * * your_command

bu "her saatin dakikası 19 olduğunda koş" anlamına gelir (1:19, 2:19, 3:19, vb.):

örnek 5

*/19 * * * * your_command

bu "her saatin dakikası 19'a eşit olarak bölünebiliyorsa çalıştır" anlamına gelir (1:19, 1:38, 1:57, 2:19, 2:38, 2:57 vb.):

not: yazar da dahil olmak üzere çeşitli kullanıcılar tarafından bu yayına birkaç ayrıntılandırma yapılmıştır


76

Bunu dene:

0,30 * * * * your command goes here

Resmi Mac OS X crontab (5) kılavuz sayfasına göre, /sözdizimi desteklenmektedir. Bu nedenle, sizin için neden işe yaramadığını anlamak için cron günlüklerine bakmanız gerekir. Bu günlükleri, sen gerektiğini net bir başarısızlık iletiyi bulmak.

Not: Mac OS X, Linux ve BSD'lerle aynı olan Vixie Cron kullanıyor gibi görünüyor.


* / 30'u her zaman başarılı bir şekilde kullandım, ancak saatte sadece bir kez çalıştığında çok kritik olan bir uygulamayı hatırlamıyorum, bu yüzden hiç kontrol etmediğimi sanmıyorum.
Adam Hawes

2
@Adam Hawes: Ayrıca geçmişte başarılı bir şekilde * / xx kullandım, ancak Linux ve diğer UNIX'lerde. Şahsen Mac OSX'i denemedim. Orijinal soru hangi işletim sistemini söylemedi. Bazı eski UNIX'ler * / xx'i desteklemez
Eddie

Cevabınız da işe yaradı, ama Vlad'ın daha az temsilcisi var, bu yüzden ona puan verdim.
Darryl Hein

1
@DarrylHein lol, Bugün Eddie'nin daha az temsilcisi var :-p. Eddie'yi onaylıyorum.
Başlangıç


5

OS X kullandığınızı söylüyorsunuz- Geçmişte cronnix kullandım . Bu, kendiniz düzenlemek kadar geeky değil, ancak sütunların bir anda ne olduğunu öğrenmeme yardımcı oldu. Sadece bir düşünce.


Bu başka türlü de yardımcı olabilir.
Darryl Hein

3

Her iki ' , ' VEYA böl ' / ' sembolünü kullanabilirsiniz.
Ancak, ' / ' daha iyidir.
Varsayalım ki 'her 5 dakikada bir'. ' , ' Kullanırsanız, cron işini aşağıdaki gibi yazmanız gerekir:

0,5,10,15,20,25,30,35,....    *      *     *   * your_command

Bu, tanımlanmış dakikaların her birinde saatinizi çalıştırmak anlamına gelir: 0,5,10, ...

Ancak, '/' kullanırsanız, aşağıdaki basit ve kısa işi yazabilirsiniz:

*/5  *  *  *  *  your_command

Komutunuzu 5 ile bölünebilen dakikalarda veya daha basit kelimelerle çalıştırmak '0,5,10, ...'

Yani, bölünebilir sembol '/' her zaman en iyi seçimdir;

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.