jak uruchomić zadanie cron co 3 miesiące?


Odpowiedzi:


68

Poniższy skrypt zostanie uruchomiony 1 stycznia, kwietnia, lipca i października o 03:30

30 03 01 Jan,Apr,Jul,Oct * /path/to/script

Alternatywnie, ale mniej oczywiste

30 03 01 */3 * /path/to/script

Będzie kursował co trzy miesiące o 03:30 1 stycznia, kwietnia, lipca i października.


4
+1: Zawsze myślałem, że notacja była NAJBARDZIEJ oczywista ... używam jej tam, gdzie to możliwe. (Słowa w części dotyczącej planowania crontaba przerażają mnie ... Zrobiłbym: „0 0 1 3,6,9,12 * /path/to/script.bash”, gdybym nie mógł / 3)
Satanicpuppy

11
nie */3byłoby co cztery miesiące (12/3 = 4)?
warren

8
@warren Nie, nie byłoby. Logika tutaj jest bardziej modowym stwierdzeniem prawdy. Np .: if (12% 3 == 0): run_script (). Też o tym myślałem! Świetne pytanie.
Goahnary

1
@Goahnary zdałem sobie sprawę, że chwilę później poprosiłem o wyjaśnienia :)
warren

3
@warren to naprawdę powinien być operator mod, a nie podział. Ale no cóż ¯_ (ツ) _ / ¯
Goahnary

7

Wikipedia ma ładne wyjaśnienie na temat konfiguracji Crona.

W konkretnym przypadku możesz uruchomić Cron Expression, aby uruchamiał się co 3 miesiące - oczywiście zmieniaj miesiące zgodnie z harmonogramem.

0 0 1 JAN,APR,JUL,OCT  * /path/to/script.bash

2
-1 Chociaż została zaznaczona poprawna odpowiedź, spowoduje błąd, ponieważ pola są w niewłaściwej kolejności, a nawet jeśli byłyby w prawidłowej kolejności, działałyby codziennie o północy do stycznia, kwietnia, lipca i października (np. 01/01 02 / 01 ... 31/01 01/04 ..) i nie tylko raz na trzy miesiące. Moja odpowiedź zadziałałaby, ale nie została zaakceptowana. Smutny ja!
Richard Holloway,

@Richard Holloway - tajemnice błędu serwera - zaktualizował moją odpowiedź dzięki za wskazanie literówki
Jon Rhoades

1
Usunąłem moje -1, aby odzwierciedlić zmianę.
Richard Holloway,

Nie powinieneś również mieć spacji po przecinkach, wiele implementacji cron zobaczy je jako separatory. Możesz natknąć się na implementacje, które również wymagają miesięcy numerycznych, choć myślę, że obecnie jest to rzadkie.
David Spillett

@David Spillett dzięki, że w końcu tam dotrzemy ... Być może moja odpowiedź w Budapeszcie kiedykolwiek. Gdybym miał jakąś przyzwoitość, usunąłbym ją;)
Jon Rhoades
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.