Aby planować zadania za pomocą cron w systemie Ubuntu, należy przeanalizować kilka kluczowych zagadnień: zasadę działania crona, składnię, uprawnienia, podstawowe polecenia oraz przykłady i najlepsze praktyki. Oto kompletny poradnik krok po kroku, który możesz opublikować na stronie poświęconej Linuksowi:
1. Co to jest cron i do czego służy?
Cron to systemowy demon pozwalający na automatyczne uruchamianie poleceń lub skryptów w zadanych odstępach czasu. Umożliwia automatyzację zadań takich jak kopie zapasowe, aktualizacje, czyszczenie katalogów czy synchronizacja danych.
2. Składnia zadań w cronie (cron expression)
Wpisy w cron definiują precyzyjnie, kiedy dane polecenie ma się wykonać. Podstawowa składnia –
* * * * * /ścieżka/do/komendy_lub_skryptu - - - - - | | | | | | | | | +---- dzień tygodnia (0-7; 0 lub 7 = niedziela) | | | +------ miesiąc (1-12) | | +-------- dzień miesiąca (1-31) | +---------- godzina (0-23) +------------ minuta (0-59)
Najczęściej stosuje się cyfry lub znak *
(oznaczający „zawsze”). Przykład – polecenie uruchamiane codziennie o 3:00:
0 3 * * * /home/user/backup.sh
3. Edycja zadań crona (crontab)
Każdy użytkownik ma własny plik crontab.
- Edytuj crontab swojego użytkownika –
crontab -e
- Wyświetl swoje zadania cron –
crontab -l
- Usuń cały swój crontab –
crontab -r
Przy pierwszym wywołaniu crontab -e
, możesz zostać poproszony o wybór edytora tekstu np. nano
lub vim
.
4. Planowanie zadań dla innego użytkownika lub na poziomie systemu
- Jako administrator możesz edytować crontab konkretnego użytkownika:
sudo crontab -u NAZWA_UŻYTKOWNIKA -e
- Crontab globalny (systemowy) znajduje się w –
/etc/crontab
W tym pliku szóstym polem jest NAZWA UŻYTKOWNIKA, pod którym zadanie się wykona:
0 1 * * * root /usr/local/bin/system_maintenance.sh
- Alternatywnie możesz dodać nowe pliki do katalogu
/etc/cron.d/
ze składnią jak powyżej.
5. Gotowe interwały – katalogi cron.hourly / cron.daily / cron.weekly / cron.monthly
Zamiast wpisywać własne wyrażenia cron, możesz umieścić skrypt w jednym z katalogów:
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
Skrypt zostanie uruchomiony z odpowiednią częstotliwością. Pamiętaj, aby ustawić mu prawa do wykonywania –
sudo chmod +x /etc/cron.daily/moj_skrypt.sh
6. Przykłady najczęstszych zadań
Częstotliwość | Wyrażenie cron | Opis |
---|---|---|
Co minutę | * * * * * |
Uruchom polecenie co minutę |
Codziennie o 2:30 | 30 2 * * * |
Każdego dnia o 2:30 |
Co poniedziałek o 5:00 | 0 5 * * 1 |
W każdy poniedziałek o 5:00 |
Pierwszego dnia miesiąca o 0:00 | 0 0 1 * * |
Na początek każdego miesiąca |
Co 15 minut | */15 * * * * |
Co 15 minut |
7. Najczęstsze błędy i dobre praktyki
- Używaj pełnych ścieżek do skryptów i programów (np.
/usr/bin/python3
,/home/user/skrypt.sh
). - Zmienna środowiskowa PATH w cron jest ograniczona – jeśli twój skrypt nie działa, dodaj na początku wpisu np.:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- Upewnij się, że skrypt jest wykonywalny (
chmod +x skrypt.sh
). - Przekierowuj wyjście i błędy do pliku logu –
0 3 * * * /home/user/backup.sh >> /home/user/cronlog.txt 2>&1
- Testuj wpisy poleceń ręcznie, zanim zautomatyzujesz je cronem.
- Zmiany w katalogach /etc/cron.* wymagają uprawnień administratora.
8. Zarządzanie uprawnieniami do używania crona
W Ubuntu domyślnie każdy użytkownik może korzystać z crona, o ile nie utworzono plików /etc/cron.allow
lub /etc/cron.deny
. Ich obecność umożliwia ograniczenie dostępu do crona konkretnej grupie użytkowników.
Podsumowanie
Korzystając z powyższych instrukcji, zautomatyzujesz praktycznie każde powtarzalne zadanie w Ubuntu. Odpowiednia konfiguracja cron zwiększa bezpieczeństwo, wydajność i niezawodność twojego systemu.
Źródła –
Wszystkie instrukcje oraz przykłady bazują na oficjalnej dokumentacji Ubuntu i sprawdzonych przewodnikach społeczności Linuksa.