W systemie Debian narzędzie cron umożliwia automatyzację cyklicznych zadań i jest podstawowym komponentem administracji serwerami oraz stacjami roboczymi z Linuksem. Poniżej znajdziesz szczegółowy poradnik, jak poprawnie konfigurować, zarządzać i monitorować zadania cron, wraz z przykładami i wyjaśnieniami.
1. Czym jest cron i do czego służy?
Cron to demon systemowy odpowiedzialny za uruchamianie poleceń lub skryptów w określonym czasie – pozwala zautomatyzować powtarzalne zadania, jak backupy, czyszczenie logów czy wykonywanie aktualizacji.
2. Instalacja i uruchamianie usług cron
W Debianie cron jest zazwyczaj instalowany domyślnie. Jeśli wymagane, zainstaluj go poleceniem:
sudo apt-get update sudo apt-get install cron
Po instalacji uruchom i ustaw autostart dla usługi:
sudo systemctl start cron sudo systemctl enable cron
Możesz sprawdzić status demona:
systemctl status cron
3. Struktura plików i lokalizacja konfiguracji
Podstawowe lokalizacje konfiguracji cron:
- Zadania użytkownika – zarządzane poprzez polecenie
crontab
przechowywane w/var/spool/cron/crontabs/<użytkownik>
- Zadania systemowe – plik
/etc/crontab
oraz katalogi/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
– zawierają skrypty uruchamiane odpowiednio raz na godzinę, dzień, tydzień lub miesiąc.
Uwaga – Plik /etc/cron.d/
pozwala na wstawianie własnych, oddzielnych plików konfiguracyjnych systemowych zadań cron.
4. Edycja zadań – narzędzie crontab
Podstawowe polecenia:
-
Wyświetlanie aktualnych zadań –
crontab -l
-
Edytowanie zadań –
crontab -e
Jeśli chcesz edytować zadania innego użytkownika:
sudo crontab -e -u nazwa_użytkownika
-
Usuwanie wszystkich zadań crona dla użytkownika –
crontab -r
5. Składnia pliku crontab
Każdy wpis to jedna linia opisująca kiedy i co wykonać:
* * * * * polecenie/do/wykonania | | | | | | | | | +----- dzień tygodnia (0-7; niedziela=0 lub 7) | | | +-------- miesiąc (1-12) | | +----------- dzień miesiąca (1-31) | +-------------- godzina (0-23) +----------------- minuta (0-59)
Przykład –
30 2 * * 1 /home/backup.sh
Wywoła skrypt /home/backup.sh
o 2:30 w każdy poniedziałek.
6. Przykłady najczęstszych zadań
- Codzienne backupy o 4:00 nad ranem –
0 4 * * * /usr/local/bin/backup.sh
- Restart usługi webowej co poniedziałek o północy –
0 0 * * 1 systemctl restart apache2
- Czyszczenie katalogu tymczasowego co godzinę –
0 * * * * rm -rf /tmp/*
7. Zaawansowane opcje (specjalne znaczniki i operatory)
-
Znaczniki specjalne (tylko na początku linii):
@reboot
– uruchamia polecenie po starcie systemu@daily
,@weekly
,@monthly
,@yearly
– skróty czasowe
Przykład:
@daily /usr/local/bin/stats.sh
-
Operatory –
,
– lista wartości (np.1,2,5
)-
– zakres (np.1-5
)*
– dowolna wartość/
– co ile jednostek (np.*/10
– co 10 minut)
Przykład: co 10 minut:
*/10 * * * * /usr/local/bin/monitor.sh
8. Uprawnienia i bezpieczeństwo
- Każdy użytkownik posiada własny crontab.
- root – ma pełny dostęp, może edytować zadania wszystkich użytkowników.
- Możliwość ograniczenia dostępu plikami
/etc/cron.allow
i/etc/cron.deny
. - Pliki w katalogach systemowych (
/etc/cron.*
) muszą mieć odpowiednie uprawnienia – powinny być wykonywalne i nieedytowalne przez niepowołane osoby.
9. Monitorowanie i logi
- Wiadomości o wykonaniu zadań cron trafiają zazwyczaj do
/var/log/syslog
lub/var/log/cron
. - Możesz wymusić przesyłanie informacji e-mail przez ustawienie zmiennej
MAILTO
u góry crontaba:MAILTO="[email protected]"
10. Typowe błędy i dobre praktyki
- Ścieżki bezwzględne – zawsze używaj bezwzględnych ścieżek do poleceń i plików.
- Zmienna środowiskowa PATH – cron ma ubogie środowisko; podaj pełną ścieżkę lub ręcznie ustaw
PATH
. - Testuj ręcznie polecenia zanim dodasz je do chrona.
- Wracaj uwagę na prawa dostępu do plików i uprawnienia użytkownika wykonującego zadanie.
11. Edycja i używanie katalogów /etc/cron.*
W katalogach /etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
, /etc/cron.monthly
możesz umieszczać skrypty (nie wpisy tekstowe!), które będą uruchamiane odpowiednio co godzinę, codziennie, co tydzień i co miesiąc. Skrypty muszą być wykonywalne i należeć do roota.
Ten poradnik w całości opisuje uruchamianie, konfigurację oraz zarządzanie zadaniami cron w Debianie, zarówno dla użytkowników jak i dla administratorów. Regularne używanie cron pozwala podnieść automatyzację i bezpieczeństwo systemu.