Uruchamianie zadania cron w systemie Linux co sześć godzin

139

Jak mogę uruchamiać polecenie co sześć godzin każdego dnia?

Próbowałem następujących rzeczy, ale nie zadziałało:

/6 * * * * *  mycommand
Gandalf StormCrow
źródło
7
możliwy duplikat How to run crontab co 2 godziny
Cas
2
co powiesz na * * / 6 * * *
madalinivascu

Odpowiedzi:

323

Zapomniałeś o jednym *, a masz za dużo pól. To godzina, o którą musisz się troszczyć

0 */6 * * * /path/to/mycommand

Oznacza to, że co szósta godzina zaczynając od 0, czyli w godzinie 0, 6, 12 i 18, którą można by zapisać jako

0 0,6,12,18 * * * /path/to/mycommand
nr
źródło
dziękuję za odpowiedź, co 6 godzin zaczynając o której godzinie? czas tworzenia crona?
Gandalf StormCrow,
dzięki, więc gdybym chciał uruchamiać go od 15:00 co 6 godzin to by tak było 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow,
5
Tak, chociaż pierwsze pole to minuta, którą ustawiłeś na 15, więc będzie to oznaczać 15: 15,23: 15,05: 15 i 11:15. (co przy okazji nie co 6 godzin 0 15,21,3,9 * * *)
nr
6

Powinieneś dołączyć ścieżkę do swojego polecenia, ponieważ cron działa w mocno ograniczonym środowisku. Nie będziesz mieć wszystkich zmiennych środowiskowych, które masz w swojej interaktywnej sesji powłoki.

Dobrym pomysłem jest określenie bezwzględnej ścieżki do skryptu / pliku binarnego lub zdefiniowanie PATH w samej tabeli crontab. Aby pomóc w debugowaniu wszelkich problemów, przekierowałbym również stdout / err do pliku dziennika.

Brian Agnew
źródło
1
dzięki za odpowiedź, ale jeśli zadeklaruję zmienne środowiskowe w moim pliku sh, tak jak export variable=somethingmogę nadal używać ich w tym samym skrypcie? i często używam polecenia daty w skrypcie
Gandalf StormCrow
@Gandalf - Tak. Możesz zdefiniować wszystkie zmienne env w skrypcie. To dobry pomysł, ponieważ oznacza to, że skrypt jest samodzielna i odizolowany od innych rzeczy może chcesz uruchomić crona
Brian Agnew
5
0 */6 * * * command

To będzie doskonały sposób na powiedzenie 6 godzin dziennie.

Twoje polecenie trwa sześć minut!

rkoots
źródło
2
@ArsenArsen Jestem prawie pewien, że to dlatego, że tak naprawdę nie dodaje niczego do istniejącej zaakceptowanej odpowiedzi, napisanej 4 lata wcześniej.
Adinia
2

Zwróć uwagę na tę składnię :

* */6 * * *

Oznacza to 60 razy (co minutę) co 6 godzin,

nie

raz na 6 godzin.

Andrea Bisello
źródło
0
0 */6 * * *

crontab co 6 godzin to powszechnie stosowany harmonogram cron.

Nilesh Patil
źródło
4
Co dodaje ta odpowiedź, a nie inne odpowiedzi? @rkoots wspomniał już o tej dokładnej komendzie.
Goodbye StackExchange
„Często używane” ? Czemu? Czy możesz rozwinąć?
Peter Mortensen
0

Musisz użyć *

0 */6 * * * /path/to/mycommand

Możesz również skorzystać z https://crontab.guru/, który pomoże ci w lepszym planowaniu ...

rkoots
źródło
-2

Próbować:

0 */6 * * * command

. * musi

rkoots
źródło
1
Ostatnia linijka tutaj nie ma większego sensu. Czy rozważyłbyś jego rozszerzenie?
halfer
1
wygląda na to, że odpowiedź jest niekompletna
ajayramesh