Generator wyrażeń Cron
Ustaw minuty, godziny, dni i miesiące – generator pokaże wyrażenie cron i opisze je po polsku. Możesz też wybrać gotowy preset.
* * * * *Co minutę, co godzinę
Czym jest cron?
Cron to systemowy harmonogram zadań w systemach Unix/Linux, który pozwala automatycznie uruchamiać polecenia lub skrypty o określonych porach. Nazwa pochodzi od greckiego chronos (czas).
Składnia wyrażenia cron (5 pól)
┌───────── minuta (0-59)
│ ┌─────── godzina (0-23)
│ │ ┌───── dzień miesiąca (1-31)
│ │ │ ┌─── miesiąc (1-12)
│ │ │ │ ┌─ dzień tygodnia (0-7, gdzie 0 i 7 = niedziela)
│ │ │ │ │
* * * * * polecenie
| Pole | Zakres | Dozwolone znaki specjalne |
|---|---|---|
| Minuta | 0–59 | * , - / |
| Godzina | 0–23 | * , - / |
| Dzień miesiąca | 1–31 | * , - / |
| Miesiąc | 1–12 | * , - / |
| Dzień tygodnia | 0–7 | * , - / |
Znaki specjalne
| Znak | Znaczenie | Przykład |
|---|---|---|
* | Dowolna wartość | * * * * * = co minutę |
, | Lista wartości | 1,15,30 = w 1., 15. i 30. minucie |
- | Zakres | 9-17 = od 9 do 17 |
/ | Krok (co ile) | */5 = co 5 minut |
Popularne przykłady wyrażeń cron
| Wyrażenie | Opis |
|---|---|
0 * * * * | Co godzinę (o pełnej) |
*/15 * * * * | Co 15 minut |
0 9 * * 1-5 | Pon-Pt o 9:00 |
0 0 * * * | Codziennie o północy |
0 0 1 * * | Pierwszego dnia miesiąca |
0 3 * * 0 | Niedziela o 3:00 |
30 8 * * 1 | Poniedziałek o 8:30 |
0 */2 * * * | Co 2 godziny |
0 9-17 * * 1-5 | Co godzinę w dni robocze (9-17) |
0 0 1 1 * | 1 stycznia o północy |
Polecenia zarządzania crontab
crontab -e # Edytuj harmonogram bieżącego użytkownika
crontab -l # Wyświetl aktualny harmonogram
crontab -r # Usuń cały harmonogram (uwaga!)
crontab -u user -e # Edytuj harmonogram innego użytkownika (root)
Typowe zadania automatyzowane przez cron
- Backup bazy danych –
0 2 * * * /scripts/backup-db.sh - Czyszczenie logów –
0 4 * * 0 find /var/log -mtime +30 -delete - Odnawianie certyfikatów SSL –
0 3 1 * * certbot renew - Generowanie raportów –
0 8 * * 1 /scripts/weekly-report.sh - Monitoring dostępności –
*/5 * * * * /scripts/healthcheck.sh
Ważne uwagi
Strefa czasowa
- Cron domyślnie używa strefy czasowej serwera
- W crontab można ustawić:
CRON_TZ=Europe/Warsaw - Uwaga na zmianę czasu (lato/zima) – zadanie może się wykonać 2 razy lub wcale
Zmienne środowiskowe
- Cron uruchamia zadania z minimalnym środowiskiem
- Używaj pełnych ścieżek do programów (
/usr/bin/python3) - Lub definiuj PATH na początku crontab:
PATH=/usr/local/bin:/usr/bin
Logowanie
- Przekieruj wyjście:
0 * * * * /script.sh >> /var/log/cron.log 2>&1 - Domyślnie cron wysyła e-mail z wyjściem (jeśli skonfigurowano MTA)
Alternatywy dla crona
| Narzędzie | System | Zalety |
|---|---|---|
| systemd timers | Linux | Lepsza kontrola, zależności, logi |
| Task Scheduler | Windows | GUI, wyzwalacze zdarzeń |
| Celery Beat | Python | Rozproszone, dynamiczne harmonogramy |
| GitHub Actions (cron) | CI/CD | schedule z wyrażeniem cron |
| Cloud Scheduler | GCP/AWS | Serverless, skalowalne |
Jeśli ten kalkulator był przydatny, sprawdź również: JSON, .htpasswd, CV i więcej kalkulatorów.
Kalkulator zawiera walidację danych wejściowych i działa lokalnie w przeglądarce. Dzięki temu możesz szybko porównać różne scenariusze bez przesyłania danych na serwer.
Najczęstsze pytania (FAQ)
Co to jest cron?
Cron to program w systemach Unix/Linux do planowania cyklicznych zadań (np. backup co noc, czyszczenie logów co tydzień). Zadania definiuje się wyrażeniami 5-polowymi.
Co oznacza * w cronie?
Gwiazdka (*) oznacza 'każdy' - np. * w polu godziny = każda godzina. */5 w polu minut = co 5 minut. 1-5 w dniu tygodnia = poniedziałek-piątek.
Jak edytować crontab?
Komenda: crontab -e (edycja), crontab -l (lista zadań), crontab -r (usuń wszystkie). Każda linia to: wyrażenie_cron polecenie_do_wykonania.