Cron to jedno z najważniejszych narzędzi systemów Linux, które umożliwia automatyczne uruchamianie skryptów i programów w określonych odstępach czasu. Dzięki niemu można harmonogramować zadania takie jak tworzenie kopii zapasowych, czyszczenie plików tymczasowych czy generowanie raportów. W tym artykule omówimy, jak działa Cron, jak skonfigurować harmonogram zadań oraz podamy przykłady jego praktycznego zastosowania.
Cron jest usługą systemową, która sprawdza harmonogram (crontab
) użytkowników i wykonuje zaplanowane zadania zgodnie z określonymi regułami czasowymi. Każdy użytkownik w systemie może posiadać własny harmonogram, a administrator może zarządzać zadaniami globalnymi.
/etc/crontab
– globalny plik konfiguracyjny./var/spool/cron/crontabs/
– katalog zawierający pliki harmonogramów użytkowników./etc/cron.d/
– dodatkowe pliki konfiguracyjne dla specyficznych aplikacji.Każdy wpis w Crontab składa się z sześciu pól:
* * * * * command_to_execute | | | | | | | | | |— Dzień tygodnia (0–7, gdzie 0 i 7 to niedziela) | | | |— Miesiąc (1–12) | | |— Dzień miesiąca (1–31) | |— Godzina (0–23) |— Minuta (0–59)
*/5 * * * * /home/user/backup.sh
0 0 * * * /usr/bin/mysqldump -u user -p'password' database > /backup/db.sql
0 3 * * 1 rm -rf /tmp/*
0 * * * * /usr/bin/php /home/user/send_email.php
Aby dodać nowy harmonogram, otwieramy edytor Crontab:
crontab -e
Dodajemy nowy wpis według struktury omówionej wcześniej.
crontab -l
crontab -r
crontab -u username -e
Zaplanowanie codziennej kopii zapasowej bazy danych:
0 2 * * * /usr/bin/mysqldump -u root -p'password' mydb > /backup/db_backup.sql
Rejestrowanie zużycia procesora co 10 minut:
*/10 * * * * top -b -n1 | head -20 >> /var/log/cpu_usage.log
0 4 * * 1 apt update && apt upgrade -y
30 6 * * * /usr/bin/python3 /home/user/generate_report.py
sudo cat /var/log/syslog | grep CRON
* * * * * /path/to/script.sh >> /var/log/cron.log 2>&1
Dodanie zmiennej MAILTO
do Crontaba:
MAILTO=user@example.com * * * * * /home/user/cron_task.sh
Cron to jedno z najpotężniejszych narzędzi do automatyzacji zadań w systemach Linux. Dzięki niemu możemy harmonogramować backupy, aktualizacje, raporty i wiele innych procesów. Kluczowe kroki do skutecznego zarządzania Crontabem to:
✅ Zrozumienie składni i struktury wpisów.
✅ Poprawna konfiguracja i testowanie zadań.
✅ Monitorowanie logów i debugowanie błędów.
Dzięki Cronowi możemy oszczędzić czas i zwiększyć efektywność zarządzania serwerem! 🚀
Cron to systemowy demon w systemach Unix i Linux, który automatycznie wykonuje zaplanowane zadania (cron jobs) w określonym czasie.
Cron działa w tle i sprawdza pliki konfiguracyjne (crontab), aby określić, czy należy uruchomić zaplanowane zadanie.
Crontab to plik konfiguracyjny zawierający harmonogram zadań dla crona. Każdy użytkownik może mieć własny plik crontab.
Aby edytować crontab, użyj polecenia `crontab -e`. Spowoduje to otwarcie pliku crontab w domyślnym edytorze.
Każdy wpis zawiera pięć pól określających czas uruchomienia oraz polecenie do wykonania: * * * * * polecenie. Przykłady: `0 0 * * * /path/to/script.sh` uruchamia skrypt codziennie o północy, `*/15 * * * * /path/to/script.sh` co 15 minut, `0 8 * * 1 /path/to/script.sh` w każdy poniedziałek o 8:00.
Użyj polecenia `crontab -l`, aby zobaczyć listę zaplanowanych zadań.
Aby usunąć wszystkie zadania, użyj `crontab -r`. UWAGA: polecenie usuwa wszystkie wpisy bez możliwości odzyskania.
Crontab obsługuje specjalne słowa kluczowe, które upraszczają definiowanie harmonogramów: `@reboot` – uruchamia zadanie po restarcie systemu, `@yearly` – raz w roku, `@monthly` – raz w miesiącu, `@weekly` – raz w tygodniu, `@daily` – raz dziennie, `@hourly` – co godzinę.
Cron jest używany do automatyzacji zadań, takich jak tworzenie kopii zapasowych, czyszczenie tymczasowych plików, wysyłanie raportów czy automatyczne aktualizacje systemu.
Cron zakłada ciągłą pracę systemu, natomiast anacron umożliwia wykonanie zadań po opóźnieniu, co jest przydatne na komputerach niepracujących non-stop.
Cron nie działa, jeśli system jest wyłączony. Nie kompensuje też zmian stref czasowych ani czasu letniego.
Najlepsze praktyki to używanie pełnych ścieżek do skryptów, przekierowanie wyjścia zadań do plików logów, unikanie uruchamiania skryptów jako root, jeśli to nie jest konieczne, oraz regularne testowanie zaplanowanych zadań.