Generatory

Generator cron: wyrażenie crontab z formularza i jego opis

Ustaw w formularzu, kiedy zadanie ma się uruchamiać, i skopiuj gotowe wyrażenie cron albo wklej własne, żeby sprawdzić, co oznacza i kiedy się wykona.

Obliczenia wykonuje Twoja przeglądarka. Wpisane dane nie są wysyłane na serwer.

Co 15 minut.

Sposób ustawiania
Dni tygodnia

Linia do crontab

*/15 * * * * /sciezka/do/skryptu.sh

Najbliższe uruchomienia

  1. Terminy pokażą się po włączeniu JavaScriptu.

Składnia wyrażenia cron

Wpis w pliku crontab zaczyna się od pięciu pól czasu oddzielonych spacjami, po których stoi polecenie. Dokumentacja crontab(5) z projektu cronie podaje dla pól następujące wartości:

PoleDozwolone wartości
minuta0–59
godzina0–23
dzień miesiąca1–31
miesiąc1–12 albo nazwy (jan–dec)
dzień tygodnia0–7 (0 i 7 to niedziela) albo nazwy (sun–sat)

Nazwy to pierwsze trzy litery angielskiej nazwy dnia lub miesiąca, a wielkość liter nie ma znaczenia. Dokumentacja dopuszcza też zakresy i listy nazw.

Znaki specjalne: gwiazdka, przecinek, myślnik i ukośnik

  • * oznacza wszystkie wartości pola, czyli „od pierwszej do ostatniej”.
  • 1-5 to zakres: dwie liczby połączone myślnikiem, z obiema granicami włącznie.
  • 1,15,30 to lista liczb lub zakresów oddzielonych przecinkami.
  • /N to krok. Według crontab(5) stawia się go po zakresie albo po gwiazdce:0-23/2 i */2 oznaczają co drugą godzinę. Sama liczba z krokiem, np.5/15, nie jest w tej składni dozwolona, dlatego generator zapisuje ją jako5-59/15.

Standard POSIX opisuje tylko gwiazdkę, liczby, zakresy i listy. Kroków ani nazw dni i miesięcy w nim nie ma, opisuje je natomiast dokumentacja cronie.

Dzień miesiąca i dzień tygodnia w jednym wyrażeniu

Gdy oba pola są ograniczone, czyli żadne nie zawiera gwiazdki, zadanie uruchamia się w dniu, który pasuje do któregokolwiek z nich. Wyrażenie 0 9 1 * 1 oznacza więc godzinę 9:00 pierwszego dnia miesiąca oraz w każdy poniedziałek, a nie tylko w poniedziałki wypadające pierwszego. Tak samo działa to w standardzie POSIX. Generator uwzględnia tę zasadę w opisie i w liście najbliższych uruchomień.

Makra @daily, @weekly i inne

Zamiast pięciu pól cronie przyjmuje skróty zaczynające się od znaku @:

MakroOdpowiednik
@rebootraz, po uruchomieniu
@yearly, @annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily0 0 * * *
@hourly0 * * * *

Przykłady wyrażeń cron

WyrażenieZnaczenie
* * * * *Co minutę.
*/5 * * * *Co 5 minut.
0 * * * *Co godzinę, o pełnej godzinie.
0 */6 * * *Co 6 godzin, o pełnej godzinie.
0 3 * * *Codziennie o 03:00.
30 8 * * 1-5O 08:30, od poniedziałku do piątku.
0 22 * * 1,3,5O 22:00, w poniedziałki, środy i piątki.
0 0 1 * *O 00:00, 1. dnia miesiąca.
0 9 1 * 1O 09:00, 1. dnia miesiąca lub w poniedziałki.
0 0 1 1 *O 00:00, 1. dnia miesiąca, w styczniu.

Na co uważać

  • Znak % w poleceniu. Według crontab(5) nieescapowany % zamienia się w znak nowej linii. W poleceniach takich jak date +%F zapisuj go jako \%. Generator robi to automatycznie w linii do skopiowania.
  • Środowisko. Cron ustawia SHELL na /bin/sh, a LOGNAME i HOME bierze z pliku /etc/passwd właściciela tabeli. Polecenie nie dostaje więc zmiennych z Twojej sesji terminala.
  • Strefa czasowa. Zmienna CRON_TZ w pliku crontab ustawia strefę czasową dla tabeli. Lista najbliższych uruchomień na tej stronie używa strefy Twojej przeglądarki.
  • Zmiana czasu. Dokumentacja cronie zaznacza, że godziny, których nie ma podczas przestawiania zegara, nigdy nie pasują, więc zadanie się nie uruchomi. Godziny występujące dwa razy powodują dwukrotne uruchomienie.

Jak dodać zadanie do crontab

Polecenie crontab -e otwiera tabelę bieżącego użytkownika w edytorze wskazanym przez zmienną VISUAL lub EDITOR i instaluje ją po zapisaniu. crontab -l wyświetla tabelę, acrontab -r ją usuwa. Wklej linię z generatora jako nowy wiersz tabeli.

Na systemach z systemd zamiast crona możesz użyć timerów. Opisujemy je w artykule Timery systemd zamiast crona: praktyczny przewodnik.

Najczęstsze pytania

Jak ustawić cron co 5 minut?

Użyj wyrażenia */5 * * * *. Krok /5 po gwiazdce w polu minut oznacza minuty 0, 5, 10 i tak dalej do 55.

Jak uruchomić zadanie w dni robocze o 8:00?

Wyrażenie 0 8 * * 1-5 oznacza minutę 0 godziny 8 w dni tygodnia od 1 (poniedziałek) do 5 (piątek).

Czy cron obsługuje sekundy?

Format crontab opisany w crontab(5) ma pięć pól czasu, a najmniejszym z nich jest minuta. Nie ma pola sekund.

Co oznacza 0 0 * * 0?

Uruchomienie o północy w każdą niedzielę. Dokumentacja cronie podaje, że to samo oznacza makro @weekly.

Źródła

  1. crontab(5): tables for driving cron, cronie, Linux man-pages
  2. crontab(1): maintains crontab files for individual users, cronie, Linux man-pages
  3. crontab: schedule periodic background work, The Open Group, POSIX.1-2024
  • Generatory

    Hasła

    Wygeneruj losowe hasło o wybranej długości i zestawie znaków albo frazę z polskich słów. Hasła powstają w Twojej przeglądarce i nigdzie nie są zapisywane.

  • Generatory

    Skróty SHA i MD5

    Policz skrót SHA-256, SHA-384, SHA-512, SHA-1 lub MD5 dla tekstu albo pliku i porównaj go z sumą kontrolną podaną przez autora, np. przy pobieraniu obrazu ISO.

  • Generatory

    Nagłówki bezpieczeństwa

    Wybierz ustawienia, a generator przygotuje nagłówki bezpieczeństwa HTTP (HSTS, CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy) jako konfigurację nginx lub Apache.

  • Generatory

    UUID

    Wygeneruj losowe identyfikatory UUID w wersji 4 albo uporządkowane czasowo w wersji 7 i sprawdź, jakiej wersji jest wklejony UUID oraz kiedy powstał UUID v7.

Niezbędne (zawsze włączone). Pamięć przeglądarki przechowuje wybrany motyw, polubione artykuły i Twoją decyzję o zgodzie. Nie używamy do tego plików cookies.