4 sposoby sprawdzenia, czy cron działa w systemie Linux

Czym jest cron i jak go zweryfikować w systemie Linux?

Cron to harmonogram zadań w systemach operacyjnych Linux oraz Unix. Jest fabrycznie zainstalowany w każdej dystrybucji Linuksa i doskonale sprawdza się w automatyzacji powtarzalnych czynności.

Aby cron działał bez zakłóceń, należy okresowo weryfikować jego prawidłowe funkcjonowanie. Można to zrobić na kilka sposobów, między innymi sprawdzając status usługi cron, przeglądając dzienniki, uruchamiając testowe zadanie, lub analizując listę działających procesów w systemie.

Co to jest cron?

Cron, jako cichy automat, służy do automatycznego planowania zadań w systemie. Osoby konfigurujące i zarządzające środowiskami oprogramowania wykorzystują go do planowania regularnego wykonywania poleceń lub skryptów powłoki – zwanych zadaniami cron – w ustalonych momentach lub odstępach czasu.

Cron wspomaga automatyzację rutynowych zadań administracyjnych i konserwacyjnych systemu, które regularnie wykonujesz.

Istnieje kilka implementacji cron dostępnych w systemie Linux. Konkretna wersja zależy od używanej dystrybucji. Popularny „Vixie cron”, nazwany na cześć jego twórcy Paula Vixie, jest często domyślnym wyborem w Debianie i Ubuntu. Z kolei Arch Linux preferuje timery systemowe, zamiast konkretnej wersji cron.

Cronie, będący rozwidleniem Vixie cron, jest dostępny w Arch jako standardowy pakiet. Możesz go zainstalować za pomocą menedżera pakietów pacman:

 sudo pacman -S cronie 

Następnie uruchom i włącz go za pomocą poleceń:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Aby dowiedzieć się, jaką wersję cron masz zainstalowaną, skorzystaj z podręcznika (manuala) za pomocą polecenia:

 man cron 

Jak zweryfikować działanie cron w systemie Linux?

Poniżej przedstawiamy kilka metod, które pozwolą ci upewnić się, że cron działa poprawnie:

1. Sprawdzenie statusu usługi cron

Jednym z pierwszych kroków, aby zweryfikować działanie cron, jest sprawdzenie statusu jego usługi za pomocą standardowych poleceń systemu Linux. Uruchom terminal, naciskając kombinację klawiszy Ctrl + Alt + T i użyj polecenia systemctl, aby wyświetlić status cron:

 sudo systemctl status cron 

Jeżeli na ekranie pojawi się informacja o aktywnym i działającym poprawnie cronie, możesz być pewien, że wszystko jest w porządku.

Co jednak, jeśli status usługi cron jest nieaktywny, jak na poniższym zrzucie ekranu?

W takim przypadku, musisz uruchomić usługę za pomocą poniższego polecenia:

 sudo systemctl start cron.service 

Po pomyślnym uruchomieniu, włącz usługę, aby uruchamiała się automatycznie przy każdym starcie systemu:

 sudo systemctl enable cron.service 

2. Przeglądanie dzienników cron

Kolejnym sposobem na sprawdzenie, czy cron działa jak należy, jest analiza plików dziennika. Dzienniki cron są zwykle zapisywane w katalogu /var/log/syslog w systemie Linux.

Syslog to standardowy protokół używany przez systemy Linux do centralizacji logów zdarzeń. Dzienniki te są następnie wykorzystywane do audytów, monitoringu, rozwiązywania problemów, tworzenia raportów oraz innych operacji IT.

Aby wyświetlić logi zadań cron w pliku syslog, użyj polecenia:

 grep 'cron' /var/log/syslog 

Jeśli cron działa bez problemów, powinieneś zobaczyć wynik podobny do poniższego, informujący o działaniu cron i zapisywaniu jego aktywności w logach:

Plik syslog zawiera również wiele innych logów systemowych. Aby ułatwić analizę, możesz utworzyć osobny plik logu, w którym będą zapisywane wyłącznie wpisy dotyczące cron.

W tym przykładzie użyjemy edytora nano, ale możesz skorzystać z dowolnego innego, który ci odpowiada.

Otwórz poniższy plik w nano:

 nano /etc/rsyslog.d/50-default.conf 

Znajdź linię zaczynającą się od:

 #cron.* 

Odkomentuj tę linię poprzez usunięcie znaku krzyżyka (#). Następnie zapisz zmiany, wychodząc z pliku (Ctrl + X, następnie Y i Enter).

Uruchom ponownie usługę rsyslog za pomocą polecenia:

 sudo service rsyslog restart 

Od teraz logi cron będą zapisywane w pliku cron.log, który znajdziesz w katalogu /var/log.

Jeśli terminal nie wyświetli żadnych logów cron, może to wskazywać na problemy. W takim przypadku skorzystaj z pozostałych metod weryfikacji.

3. Uruchomienie testowego zadania cron

Możesz też sprawdzić działanie cron poprzez utworzenie testowego zadania i jego uruchomienie. Jeśli zadanie wykona się poprawnie, będzie to oznaczało, że cron funkcjonuje prawidłowo.

Na początku utwórz skrypt w języku Bash. Skrypty Bash umożliwiają automatyzację codziennych zadań w systemie Linux.

Utwórzmy skrypt, który wypisze komunikat „moje cronjob działa!” do pliku TXT. W tym celu najpierw sprawdź swój bieżący katalog roboczy za pomocą polecenia:

 pwd 

Następnie w tym katalogu, utwórz plik za pomocą polecenia touch:

 touch file.txt 

Teraz utwórz plik Bash w nano:

 nano script.sh 

W pliku umieść poniższą zawartość:

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Pamiętaj, aby podać właściwą ścieżkę do utworzonego pliku tekstowego. Zapisz zmiany i wyjdź z edytora (Ctrl + X, następnie Y i Enter).

Nadaj skryptowi prawa do wykonywania:

 chmod +x script.sh 

Teraz stwórz zadanie cron, aby uruchomić skrypt. Otwórz plik crontab, używając polecenia:

 crontab -e 

W nowo otwartym pliku, na końcu, dodaj poniższą linię:

 * * * * * /path/to/script.sh 

Pięć gwiazdek symbolizuje czas wykonania zadania. Pierwsza gwiazdka oznacza minuty (0-59), druga godziny (w formacie 24-godzinnym, np. 13:00 to 13), trzecia dzień miesiąca (1-31), czwarta miesiąc (1-12), a piąta dzień tygodnia (0-7, gdzie 0 i 7 to niedziela).

W linii musisz także podać ścieżkę do wykonywanego pliku.

Po zapisaniu pliku, na terminalu zobaczysz komunikat „crontab: instalowanie nowego crontab”.

Aby sprawdzić, czy zadanie cron zostało wykonane, przejdź do katalogu, w którym utworzono plik file.txt i wyświetl jego zawartość za pomocą polecenia cat:

 cat file.txt 

Jeżeli na ekranie pojawi się fraza „moje cronjob działa!”, oznacza to, że cron działa prawidłowo.

4. Sprawdzenie działających procesów

Kolejną metodą na zweryfikowanie działania demona cron jest przejrzenie listy aktywnych procesów w systemie. Można to zrobić za pomocą polecenia ps. Demon cron powinien być widoczny na liście jako crond.

 ps aux | grep cron 

Pojawienie się procesu crond na liście potwierdza jego prawidłowe działanie.

Automatyzacja zadań systemowych z cron

Cron to fundamentalne narzędzie w systemie Linux, które pozwala na jego efektywne działanie. W trakcie rozwiązywania problemów systemowych często niezbędne jest upewnienie się, że cron działa poprawnie.

Możesz to zrobić, analizując dzienniki cron lub sprawdzając listę aktywnych procesów w systemie. Dodatkowo, sprawdzenie statusu usługi za pomocą systemctl, a także uruchomienie testowego zadania cron, mogą dostarczyć ci dodatkowych informacji.

Sprawne działanie cron umożliwia automatyzację oraz planowanie codziennych zadań systemowych. Wiele zadań cron jest generowanych automatycznie przez zainstalowane oprogramowanie. Automatyzacja i planowanie zadań zwiększa wydajność systemu i utrzymuje go w dobrej kondycji.