Generator wyrażeń cron (crontab)
Twórz wyrażenia cron (crontab) za pomocą presetów, kreatora pól lub własnego wyrażenia. Gotowa linia crontab z opisem i rozbiciem pól.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Podgląd źródła (JSON)
{
"output": "*/5 * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /var/log/cron-schedule.log 2>&1",
"raw": "*/5 * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /var/log/cron-schedule.log 2>&1",
"metadata": {
"expression": "*/5 * * * *",
"description": "Co 5 minut",
"command_used": "Tak"
}
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator wyrażeń cron (crontab)
Narzędzie pozwala szybko wygenerować poprawne wyrażenie cron używane w systemie crontab (Linux/Unix). Wybierz gotowy preset, skorzystaj z kreatora pól lub wpisz własne wyrażenie — generator wyświetli gotową linię crontab z opisem harmonogramu po polsku.
Składnia wyrażenia cron — 5 pól
Wyrażenie cron składa się z 5 pól oddzielonych spacjami:
┌────────── minuta (0–59) │ ┌──────── godzina (0–23) │ │ ┌────── dzień miesiąca (1–31) │ │ │ ┌──── miesiąc (1–12) │ │ │ │ ┌── dzień tygodnia (0–7, 0=niedziela) │ │ │ │ │ * * * * * komenda
*— każda wartość (np. co minutę)*/n— co n-tą wartość (np.*/5= co 5 minut)a-b— zakres (np.1-5= pon.–pt.)a,b,c— lista wartości (np.0,6,12)a-b/n— zakres co n-tą wartość
Jak używać generatora
- Wybierz tryb: Gotowe presety (np. co 5 minut, codziennie o północy), Kreator pól (minuta, godzina itd. osobno) lub Własne wyrażenie.
- Opcjonalnie wpisz komendę do uruchomienia i zaznacz „Dołącz komendę do wyniku".
- Kliknij Przetwórz — generator wyświetli gotową linię crontab w formacie monospace z opisem i rozbiciem 5 pól.
- Skopiuj linię przyciskiem Kopiuj i wklej ją do crontaba (
crontab -e).
Przykłady wyrażeń cron
Popularne harmonogramy
* * * * *— co minutę*/5 * * * *— co 5 minut0 * * * *— co godzinę (o pełnej)0 3 * * *— codziennie o 3:000 0 * * 0— co niedzielę o północy0 0 1 * *— pierwszego każdego miesiąca0 0 1 1 *— co roku, 1 stycznia30 7 * * 1-5— pon.–pt. o 7:30
Gdzie wpisać crontab?
Otwórz terminal i wpisz:
crontab -e
Otworzy się edytor z listą zadań. Każda linia to jedno zadanie. Wklej wygenerowaną linię, zapisz i zamknij edytor. Zadania zostaną uruchomione automatycznie przez crond.
Sprawdzenie listy zadań: crontab -l
Logi crona: /var/log/syslog lub /var/log/cron
Jak działa dopasowanie czasu w cronie
crontab to zwykły plik tekstowy, w którym każda linia opisuje jedno zadanie: pięć pól czasu, spacja, a dalej komenda do uruchomienia. Demon cron budzi się raz na minutę, pobiera aktualny czas systemowy i porównuje go z kolejnymi wpisami. Jeśli minuta, godzina, dzień miesiąca, miesiąc i dzień tygodnia pasują jednocześnie, komenda zostaje wykonana.
Każde pole działa jak niezależny filtr. Gwiazdka nie filtruje niczego, pojedyncza liczba przepuszcza tylko jedną wartość, zakres a-b wszystkie wartości pomiędzy, lista a,b,c wybrane wartości, a zapis */n przepuszcza co n-tą wartość z całego zakresu pola. Warunki z różnych pól łączą się spójnikiem „i” — zadanie ruszy dopiero, gdy wszystkie pięć filtrów przepuści bieżący czas.
Wyjątkiem jest para dzień miesiąca i dzień tygodnia. Gdy oba pola są ograniczone, czyli żadne nie zawiera gwiazdki, cron traktuje je jako alternatywę: zadanie uruchomi się, gdy pasuje dzień miesiąca LUB dzień tygodnia. Zapis 0 0 1 * 1 oznacza więc pierwszy dzień miesiąca albo poniedziałek, a nie pierwszy poniedziałek miesiąca. To najczęstsze źródło pomyłek przy budowaniu harmonogramów.
Przykład krok po kroku: raport w dni robocze o 7:30
- Określ cel zadania — chcemy uruchamiać skrypt /usr/local/bin/raport.sh w dni robocze o 7:30.
- Ustaw minutę na 30 — w polu minuta wpisujemy 30, więc zadanie odpali się wyłącznie w 30. minucie godziny, a nie w każdej minucie.
- Ustaw godzinę na 7 — pole godzina przyjmuje wartość 7 w zapisie 24-godzinnym, czyli 7:30 rano.
- Zostaw dzień miesiąca i miesiąc jako gwiazdki — dwa znaki * oznaczają dowolny dzień dowolnego miesiąca, więc nic nie zawężamy.
- Ustaw dzień tygodnia jako zakres 1-5 — 1 to poniedziałek, 5 to piątek, więc sobota i niedziela są wykluczone.
- Odczytaj wynik i wklej go do crontaba — generator zwraca linię 30 7 * * 1-5 /usr/local/bin/raport.sh z opisem „poniedziałek–piątek o 07:30”. Skopiuj ją i umieść w pliku otwartym przez crontab -e, zapisując zmiany.
Tabela referencyjna pól i zapisów
| Pole | Zakres wartości | Co przyjmuje i przykłady |
|---|---|---|
| Minuta | 0–59 | * (każda), 0, 30, */5 (co 5 minut), 0,15,30,45 |
| Godzina | 0–23 | * (każda), 0 (północ), 3, 7, 6-22, */2 |
| Dzień miesiąca | 1–31 | * (każdy), 1, 15, 1-7, 1,15 |
| Miesiąc | 1–12 | * (każdy), 1 (styczeń), 12, 6-8 |
| Dzień tygodnia | 0–7 (0 i 7 to niedziela) | * (każdy), 1 (poniedziałek), 5 (piątek), 1-5, 0,6 |
| Znak * i zapis */n | — | * = każda wartość, */15 = co 15 jednostek wewnątrz danego pola |
| Dzień miesiąca razem z dniem tygodnia | — | gdy oba pola są ograniczone, działa suma logiczna (LUB), nie iloczyn |
| Skróty z małpą | — | @reboot, @hourly, @daily, @weekly — zastępują całe pięć pól |
Praktyczne wskazówki przed wklejeniem wpisu
- Najpierw przetestuj na bliskiej godzinie — ustaw tymczasowo harmonogram o minutę lub dwie do przodu, sprawdź, czy zadanie faktycznie ruszyło, a potem zmień wpis na docelowy.
- Używaj ścieżek bezwzględnych i przekieruj wyjście — cron uruchamia komendę w minimalnym środowisku, bez Twojego PATH; wynik i błędy zapisuj do pliku, dopisując na końcu komendy przekierowanie do logu.
- Sprawdź strefę czasową serwera — cron korzysta z czasu lokalnego maszyny, więc ten sam wpis na dwóch serwerach może wystartować o różnych godzinach.
- Chroń się przed nakładaniem zadań — jeśli komenda może trwać dłużej niż odstęp między uruchomieniami, dodaj blokadę procesu albo rozrzedź harmonogram.
- Komentuj wpisy — linia rozpoczynająca się od znaku # jest komentarzem; krótki opis nad zadaniem oszczędza czas przy późniejszej edycji.
Czego generator nie uwzględnia
- To generator wyrażenia, nie wykonawca — narzędzie zwraca poprawny zapis harmonogramu, ale nie uruchamia komendy i nie sprawdza, czy wskazany plik istnieje ani czy ma prawa wykonywania.
- Nie zna strefy czasowej ani zmiany czasu — wynik opiera się wyłącznie na polach; faktyczna godzina startu zależy od konfiguracji serwera, a przy przejściu na czas letni lub zimowy uruchomienie może się przesunąć albo powtórzyć.
- Nie wykrywa dat nieistniejących — wpis z dniem miesiąca 30 lub 31 w lutym po prostu się nie uruchomi w tym miesiącu, a generator tego nie sygnalizuje.
- Nie obsługuje rozszerzeń innych implementacji — pole sekund, znaki ? L W # znane z Quartza czy składnia timerów systemd mają inne znaczenie niż klasyczny crontab i nie są tu odwzorowane.
Najczęstsze pytania
Czym różni się */5 od 0,5,10,15,...?
Są równoważne — */5 to skrócony zapis co 5 minut w całym zakresie pola, natomiast lista 0,5,10,...,55 jest jej rozwinięciem. */5 jest czytelniejszy i zalecany.
Czy numer 7 dnia tygodnia to niedziela?
Tak — wartości 0 i 7 obie oznaczają niedzielę. Poniedziałek to 1, wtorek 2, ..., sobota 6.
Jak uruchamiać skrypty PHP przez cron?
Użyj pełnej ścieżki do interpretera PHP, np.:*/10 * * * * /usr/bin/php /var/www/html/artisan schedule:run >> /var/log/cron.log 2>&1
Przekierowanie 2>&1 zapisuje zarówno stdout, jak i stderr do pliku logu.
Czy mogę użyć nazw miesięcy i dni?
Tak — zamiast cyfr można użyć skrótów angielskich: JAN, FEB, ..., DEC dla miesięcy oraz SUN, MON, TUE, WED, THU, FRI, SAT dla dni tygodnia. Np. 0 9 * * MON-FRI = każdy dzień roboczy o 9:00.
Jak sprawdzić, czy cron działa poprawnie?
Sprawdź logi: grep CRON /var/log/syslog (Debian/Ubuntu) lub cat /var/log/cron (RHEL/CentOS). Jeśli zadanie nie jest widoczne, upewnij się, że usługa crond jest uruchomiona: systemctl status cron.
Czym się różni cron od crontab?
cron to demon systemowy, który co minutę sprawdza harmonogramy i uruchamia zadania. crontab to plik z listą tych harmonogramów przypisany do konkretnego użytkownika oraz polecenie służące do jego edycji.
Jak ustawić zadanie co 5 minut?
Użyj zapisu */5 w polu minuta, czyli */5 * * * *. Wartość n oznacza krok, więc cron wykona zadanie w minutach 0, 5, 10 i kolejnych.
Czy cron obsługuje sekundy?
Klasyczny crontab nie ma pola sekund — najmniejszą jednostką jest minuta. Jeśli potrzebujesz uruchomień co kilka sekund, zastosuj pętlę w skrypcie, timer systemd albo inne narzędzie.
Dlaczego wpis 0 0 31 * * nie uruchamia się co miesiąc?
Ponieważ nie każdy miesiąc ma 31 dni. W krótszych miesiącach warunek dnia miesiąca nie zostaje spełniony i zadanie jest pomijane.
Jak zaplanować zadanie na dwie godziny, na przykład 8:00 i 20:00?
W polu godzina wpisz listę rozdzieloną przecinkami: 0 8,20 * * *. Cron uruchomi komendę w obu tych godzinach, bo lista przepuszcza każdą z podanych wartości.