Polecenie cron w systemie Linux umożliwia automatyczne wykonywanie zaplanowanych zadań (skryptów, poleceń, kopii bezpieczeństwa) o określonych godzinach lub w regularnych odstępach czasu. Poniżej znajdziesz szczegółowy, krok po kroku poradnik dla początkujących i średniozaawansowanych użytkowników Linuksa.
1. Czym jest cron i crontab?
- cron to demon systemowy (czyli program działający w tle), który uruchamia zadania w określonych chwilach, zgodnie z harmonogramem zapisanym w plikach crontab.
 - crontab (ang. „cron table”) to plik z listą zadań do wykonywania przez crona – każdy użytkownik może mieć własny plik crontab.
 
2. Podstawy obsługi crontaba
Edytowanie własnych zadań crona
Aby rozpocząć edycję własnego pliku crontab, użyj polecenia:
crontab -e 
Uruchomi się domyślny edytor tekstu (np. nano, vi), w którym możesz wprowadzać zadania.
Wyświetlanie i usuwanie zadań
- Wyświetlenie własnych zadań: 
crontab -l - Usunięcie wszystkich zadań: 
crontab -r 
3. Składnia wpisów crona – jak to działa?
Każda linia w pliku crontab określa jedno zadanie według schematu:
MIN HOUR DAY MONTH DAYOFWEEK /ścieżka/do/polecenia lub skryptu 
Gdzie:
- MIN – minuta (0–59)
 - HOUR – godzina (0–23)
 - DAY – dzień miesiąca (1–31)
 - MONTH – miesiąc (1–12)
 - DAYOFWEEK – dzień tygodnia (0–7), gdzie 0 i 7 to niedziela
 
Przykład zapisu –
0 3 * * * /home/user/backup.sh 
Ten wpis uruchomi skrypt backup.sh codziennie o godz. 3:00.
4. Przykłady harmonogramów
| Harmonogram | Zapis crona | Wyjaśnienie | 
|---|---|---|
| Co 5 minut | */5 * * * * polecenie | 
W każdej piątej minucie | 
| Codziennie o 2:15 | 15 2 * * * polecenie | 
O 2:15 w nocy | 
| W każdą niedzielę | 0 8 * * 0 polecenie | 
O 8:00 w każdą niedzielę | 
| 1. dnia miesiąca | 0 0 1 * * polecenie | 
Północ w pierwszy dzień każdego miesiąca | 
Znak * (gwiazdka) oznacza „każda wartość” w danym polu.
5. Planowanie zadań systemowych
Zadania ogólnosystemowe są przechowywane w pliku /etc/crontab i mogą zawierać pole użytkownika, np.:
0 1 * * * root /usr/local/bin/system_maintenance.sh 
Tutaj zadanie wykona się o 1:00 w nocy każdego dnia jako użytkownik root.
6. Automatyzacja katalogów – cron.hourly, cron.daily itd.
Systemy Linux często automatycznie wykonują skrypty z określonych katalogów w /etc/:
/etc/cron.hourly– co godzinę/etc/cron.daily– codziennie/etc/cron.weekly– co tydzień/etc/cron.monthly– co miesiąc
Dodanie własnego pliku do tych katalogów sprawia, że zostanie automatycznie uruchomiony zgodnie z harmonogramem.
7. Typowe błędy i porady
- Ścieżka do polecenia – zawsze wpisuj pełną ścieżkę do wykonywanego skryptu lub programu (np. 
/usr/bin/python3zamiast tylkopython3). - Zmienne środowiskowe – zadania cron działają w ograniczonym środowisku, zadbaj więc o ustawienie potrzebnych zmiennych np. 
PATH. - Logowanie efektów zadań – możesz przekierować wynik działania polecenia do pliku log, np.\ 
0 3 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1 - Sprawdzanie logów crona – na większości systemów logi crona znajdziesz w 
/var/log/sysloglub/var/log/cron. 
8. Proste przykłady
- Uruchamianie skryptu PHP co dwie godziny –
 
 0 */2 * * * /usr/local/php74/bin/php $HOME/public_html/myscript.php 
To uruchomi skrypt co dwie godziny, o pełnej godzinie.
- Wykonywanie kopii zapasowej codziennie o 1:30 –
 
 30 1 * * * /home/user/backup.sh 
9. Testowanie i zarządzanie
- Aby sprawdzić poprawność składni, możesz przetestować zadania lokalnie, np. zapisać wynik działania do pliku.
 - Jeśli masz wiele podobnych zadań lub chcesz testować różne konfiguracje, możesz stworzyć lokalny plik (np. 
cron.txt), wypełnić go wpisami, a następnie załadować komendą:\crontab ./cron.txt 
10. Podsumowanie
cron to jedno z najważniejszych narzędzi do automatyzacji pracy w Linuksie. Pozwala regularnie wykonywać zadania, minimalizując nakład pracy i ryzyko pomyłek ludzkich. Dzięki stosowaniu opisanych tu zasad, możesz łatwo zaplanować dowolne procesy systemowe i użytkownika, korzystając z prostych i czytelnych harmonogramów.
Dzięki tej instrukcji wdrożysz własne zadania krok po kroku zarówno na serwerze, jak i na komputerze osobistym.



