Cron
Cron to demon (usługa działająca w tle) systemów uniksowych i linuksowych, który automatycznie uruchamia polecenia oraz skrypty według zdefiniowanego harmonogramu. Nazwa pochodzi od greckiego chronos (czas). Cron jest obecny w praktycznie każdej dystrybucji Linuksa i stanowi podstawowe narzędzie automatyzacji zadań administracyjnych na serwerach.
Jak działa cron
Demon crona budzi się co minutę i sprawdza, czy w harmonogramach — plikach crontab użytkowników oraz systemowych katalogach typu /etc/cron.d — znajduje się zadanie do wykonania w bieżącej minucie. Każdy wpis harmonogramu składa się z pięciu pól czasu i polecenia:
minuta godzina dzień-miesiąca miesiąc dzień-tygodnia polecenie
Przykład: wpis 30 3 * * 1 /usr/local/bin/backup.sh uruchomi skrypt kopii zapasowej w każdy poniedziałek o 3:30. Gwiazdka oznacza „każdą wartość”, ukośnik pozwala definiować kroki (*/15 w polu minut = co kwadrans), a przecinki i zakresy — listy wartości. Dostępne są też skróty typu @daily, @hourly czy @reboot (przy starcie systemu).
Warto pamiętać, że cron uruchamia zadania w okrojonym środowisku: bez zmiennych sesji, z minimalnym PATH. To najczęstsza przyczyna sytuacji, w której skrypt działa z konsoli, a z crona już nie — rozwiązaniem jest podawanie pełnych ścieżek do programów i plików.
Zastosowanie w praktyce
Typowe zadania powierzane cronowi na serwerze to:
- nocne kopie zapasowe baz danych i plików,
- rotacja i czyszczenie logów oraz plików tymczasowych,
- odnawianie certyfikatów SSL (np. Let's Encrypt),
- wysyłka raportów i kolejek e-mail,
- uruchamianie harmonogramów aplikacji — WordPress (wp-cron), Laravel (schedule:run), Magento.
Na hostingu współdzielonym zadania cron konfiguruje się zwykle przez panel (DirectAdmin, cPanel, Plesk), bez dostępu do konsoli; na VPS-ie administrator zarządza nimi bezpośrednio przez SSH. Dobrą praktyką jest logowanie wyniku każdego zadania i monitorowanie, czy faktycznie się wykonuje — cichy brak backupu bywa odkrywany dopiero wtedy, gdy kopia jest potrzebna.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się cron od crontab i cron joba?
Cron to demon — usługa systemowa działająca w tle i pilnująca harmonogramu. Crontab to plik (i polecenie do jego edycji), w którym harmonogram jest zapisany. Cron job to pojedyncze zaplanowane zadanie, czyli jeden wiersz w crontabie.
