Jak mogę uzyskać zadanie CRON uruchamiane co 30 minut?


224

Chcę dodać crontabwpis, aby wykonać skrypt co 30 minut, o godzinie i 30 minut po godzinie lub coś blisko. Mam następujące, ale wydaje się, że nie działa na 0.

*/30 * * * *

Jakiego ciągu muszę użyć?

Cron działa na OSX.


Czy udało ci się sprawić, że twój crontab zaczął działać? Twoim problemem może nie być plik crontab, ale przygotowanie go do użycia.
— Eddie

Uruchamia 2 inne skrypty, jeden co minutę.
— Darryl Hein

1
Czekam, aby zobaczyć, czy jedna z poniższych odpowiedzi działa, wystarczy poczekać, aż kolejne 30 minut minie ... za 3 minuty.
— Darryl Hein

2
... Czy nie możesz po prostu zmienić 0,30 na 0,5? Jeśli 0,5 działa, dlaczego nie 0,30?
— George Stocker,

1
Nigdy nie powiedziałeś nam, czy zadziałało na godzinę!
— Eddie

Odpowiedzi:


487

Robić:

0,30 * * * * your_command

1
Działa świetnie! W CentOS crontab musiałem zrobić coś takiego, 0,30 * * * * root your_commandgdzie root byłby użytkownikiem, którego używam.
— prograhammer

@prograhammer - Czy ta linia była częścią crontab roota czy crontab innego użytkownika?
— Muhamed Huseinbašić

@ MuhamedHuseinbašić dobre pytanie, ponieważ istnieją 2 różne crontabs (globalny, a następnie użytkownik). Będę musiał sprawdzić i zobaczyć ...
— prograhammer

100

crontab nie rozumie „interwałów”, tylko „harmonogram”

ważne godziny: 0-23 - ważne minuty: 0-59

Przykład 1

30 * * * * your_command

oznacza to „uruchom, gdy minuta każdej godziny będzie 30 ” (uruchomi się o: 1:30, 2:30, 3:30 itp.)

przykład nr 2

*/30 * * * * your_command

oznacza to „biegnij, gdy minuta każdej godziny jest równomiernie podzielna przez 30 ” (biegnie o: 1:30, 2:00, 2:30, 3:00 itd.)

przykład nr 3

0,30 * * * * your_command

oznacza to „uruchom, gdy minuta każdej godziny wynosi 0 lub 30 ” (uruchomi się o: 1:30, 2:00, 2:30, 3:00 itp.)

to kolejny sposób na osiągnięcie takich samych wyników jak w przykładzie 2

przykład nr 4

19 * * * * your_command

oznacza to „biegnij, gdy minuta każdej godziny wynosi 19 ” (biegnie o: 1:19, 2:19, 3:19 itd.)

przykład # 5

*/19 * * * * your_command

oznacza to „biegnij, gdy jest minuta każdej godziny równo podzielna przez 19 ” (biegnie o: 1:19, 1:38, 1:57, 2:19, 2:38, 2:57 itd.)

Uwaga: w tym poście wprowadzono kilka udoskonaleń przez różnych użytkowników, w tym autora


76

Spróbuj tego:

0,30 * * * * your command goes here

Według oficjalnych Mac OS X crontab (5) podręcznika The /składnia jest obsługiwana. Dlatego, aby dowiedzieć się, dlaczego to nie zadziałało, musisz spojrzeć na dzienniki Crona. W tych logach powinieneś znajdować się wyraźny komunikat o błędzie.

Uwaga: Wydaje się, że Mac OS X używa Vixie Cron, podobnie jak Linux i BSD.


Zawsze z powodzeniem używałem * / 30, ale nie przypominam sobie mojej aplikacji, w której było to zbyt krytyczne, gdyby działała tylko raz na godzinę, więc nie sądzę, żebym kiedykolwiek sprawdził.
— Adam Hawes,

2
@Adam Hawes: W przeszłości z powodzeniem używałem * / xx, ale na Linuksie i innych systemach UNIX. Nie próbowałem osobiście Mac OSX. Pierwotne pytanie nie mówiło, który system operacyjny. Niektóre starsze systemy UNIX nie obsługują * / xx
— Eddie

Twoja odpowiedź również zadziałała, ale Vlad ma mniej przedstawicieli, więc dałem mu punkty.
— Darryl Hein,

1
@DarrylHein lol, Today Eddie ma mniej powtórzeń :-p. Głosuję za Eddiem.
— początkujący


5

Wspomniałeś, że używasz OS X- W przeszłości używałem cronnix . Nie jest tak maniakalny, jak samodzielna edycja, ale pomógł mi dowiedzieć się, jakie kolumny są w mgnieniu oka. Tylko myśl.


W przeciwnym razie może to być pomocne.
— Darryl Hein,

3

Możesz użyć obu symboli „ , ” LUB podzielić ” / ”.
Ale „ / ” jest lepsze.
Załóżmy przypadek „co 5 minut”. Jeśli używasz „ , ”, musisz napisać zadanie cron w następujący sposób:

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

Oznacza to, że uruchamiaj komendę co godzinę we wszystkich określonych minutach: 0,5,10, ...

Jeśli jednak użyjesz „/”, możesz napisać następujące proste i krótkie zadanie:

*/5  *  *  *  *  your_command

Oznacza to uruchomienie komendy w minutach, które można podzielić przez 5 lub prościej: „0,5,10, ...”

Tak więc symbol podzielny ”/” jest zawsze najlepszym wyborem;

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.