4 způsoby, jak zkontrolovat, zda cron funguje na Linuxu

Cron je nástroj pro plánování úloh v operačních systémech Linux a Unix. Je standardní součástí všech linuxových distribucí a je ideální pro automatizaci opakujících se úkolů.

Pro správnou funkčnost cronu je důležité pravidelně ověřovat, zda ve vašem systému pracuje správně. Existují čtyři hlavní metody, jak to zjistit: kontrola stavu služby cron, analýza cron logů, spuštění testovací cron úlohy a výpis aktivních procesů ve vašem systému.

Co je to cron?

Cron je nenápadný správce úloh, který automatizuje a plánuje systémové operace. Uživatelé, kteří konfigurují a spravují softwarová prostředí, využívají cron k nastavení úloh, jako jsou příkazy nebo skripty shellu (známé také jako cron joby), aby se spouštěly v pravidelných intervalech nebo v přesně určených časech.

Cron vám pomáhá automatizovat rutinní úkoly údržby nebo správy systému, které byste jinak museli provádět ručně a často.

V Linuxu existuje několik implementací cronu. Konkrétní verze závisí na vaší distribuci. „Vixie cron“, pojmenovaný po svém tvůrci Paulu Vixie, je běžný a výchozí v Debianu a Ubuntu. Arch Linux naopak nemá ve výchozím stavu žádnou verzi cronu, dává přednost časovačům systemd.

Cronie je odnož Vixie cronu, která je standardním balíčkem v Arch Linuxu. Pro instalaci použijte pacman:

 sudo pacman -S cronie 

Poté jej spusťte a aktivujte pomocí příkazů:

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

Verzi cronu nainstalovanou ve vašem systému můžete zjistit vyhledáním jeho manuálové stránky:

 man cron 

Jak zjistit, zda cron v Linuxu funguje správně

Níže jsou uvedeny různé způsoby, jak ověřit, jestli váš cron běží bez problémů:

1. Kontrola stavu služby cron v Linuxu

Jedním ze způsobů, jak ověřit funkčnost cronu, je kontrola stavu služby cron pomocí základního příkazu Linuxu. Otevřete terminál (Ctrl + Alt + T) a pomocí příkazu systemctl zkontrolujte stav cronu:

 sudo systemctl status cron 

Pokud vidíte podobný výstup, znamená to, že cron je aktivní a v systému funguje správně.

Co ale dělat, pokud je cron v neaktivním stavu, jak ukazuje obrázek níže?

Službu můžete spustit takto:

 sudo systemctl start cron.service 

Po spuštění služby cron ji aktivujte, aby se spouštěla automaticky při každém restartu systému:

 sudo systemctl enable cron.service 

2. Prohlížení logů cron v Linuxu

Další možností, jak zkontrolovat, zda cron funguje správně, je prozkoumat log soubory. Logy cronu se v Linuxu obvykle ukládají do adresáře /var/log/syslog.

Syslog je protokol, který linuxové systémy využívají k centralizaci logů událostí. Tyto logy pak slouží k auditu, monitorování, řešení problémů, generování reportů a dalším nezbytným IT operacím.

Záznamy o cron úlohách v souboru syslog můžete zobrazit pomocí následujícího příkazu:

 grep 'cron' /var/log/syslog 

Uvidíte podobný výstup, který naznačuje, že cron běží správně a jeho logy se ukládají do log souboru:

Protože syslog obsahuje kromě cron logů i další systémové logy, může být trochu složité zkoumat v souboru pouze cron záznamy. Tento problém lze vyřešit vytvořením samostatného log souboru, který bude ukládat pouze cron záznamy ze syslogu.

V následujícím příkladu použijeme editor nano, ale můžete použít jakýkoli editor, který preferujete.

Otevřete následující soubor pomocí nano:

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

Vyhledejte řádek, který začíná:

 #cron.* 

Odkomentujte tento řádek odstraněním znaku #. Poté uložte a zavřete soubor stisknutím Ctrl + X, pak Y a nakonec Enter.

Restartujte službu rsyslog pomocí tohoto příkazu:

 sudo service rsyslog restart 

Nyní budete mít cron logy v souboru cron.log, který se nachází v adresáři /var/log.

Pokud terminál nenačte žádné logy, může to znamenat, že cron neběží. V takovém případě ověřte jeho stav pomocí jiných metod.

3. Spuštění cron úlohy v Linuxu

Můžete také otestovat, zda cron funguje, vytvořením testovací cron úlohy a jejím spuštěním. Pokud úloha úspěšně provede svůj úkol, je to znamení, že cron funguje správně.

Nejprve je potřeba vytvořit Bash skript. Bash skriptování vám umožňuje automatizovat rutinní úkoly v Linuxu.

Vytvoříme Bash skript, který do TXT souboru vypíše text „můj cron job funguje!“. Pro vytvoření souboru nejprve zjistěte váš aktuální pracovní adresář pomocí příkazu:

 pwd 

Vytvořte soubor v aktuálním adresáři pomocí příkazu touch:

 touch file.txt 

Poté vytvořte Bash skript pomocí nano:

 nano script.sh 

Do souboru vložte následující obsah:

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

Ujistěte se, že jste zadali správnou cestu k textovému souboru, který jste vytvořili. Uložte a zavřete soubor stisknutím Ctrl + X, poté Y a nakonec Enter.

Udělejte skript spustitelným:

 chmod +x script.sh 

Nyní vytvořte cron úlohu pro spuštění skriptu. Uděláte to tak, že otevřete soubor crontab pomocí příkazu:

 crontab -e 

Na konec souboru vložte následující řádek.

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

Pět hvězdiček definuje čas spuštění. První představuje minuty (0-59), druhá hodiny (ve 24hodinovém formátu, takže 13:00 je 13, půlnoc začíná 0), třetí den v měsíci (0-7, 0 a 7 je neděle), čtvrtá měsíc a poslední rok.

V souboru je také uvedena cesta ke spustitelnému souboru.

Po uložení a zavření souboru se v terminálu objeví zpráva „crontab: install new crontab“.

Pro ověření, zda cron úloha fungovala, přejděte do adresáře s file.txt a pomocí příkazu cat vytiskněte jeho obsah do terminálu:

 cat file.txt 

To potvrzuje, že cron funguje správně.

4. Kontrola běžících procesů v Linuxu

Další možností, jak ověřit, že cron běží, je výpis běžících procesů ve vašem systému. To lze provést pomocí příkazu ps. Cron démon se ve výstupu zobrazí jako crond.

 ps aux | grep cron 

Tím se potvrdí, že proces cron je ve vašem linuxovém systému aktivní.

Automatizace a plánování systémových úloh s cronem

Cron je jedním z nejdůležitějších nástrojů v Linuxu, který umožňuje efektivní chod systému. Někdy je nutné ověřit, zda cron funguje správně, abyste mohli řešit případné problémy.

Můžete to udělat buď kontrolou logů cronu nebo zobrazením běžících procesů. Stav cronu můžete také zkontrolovat pomocí nástroje systemctl. Navíc spuštění testovací cron úlohy vám také může napovědět, zda je služba spuštěna.

Správně fungující cron vám umožňuje automatizovat a plánovat každodenní systémové úkoly. Většina cron úloh je automaticky nastavena nainstalovanými aplikacemi. Automatizace a plánování úloh zlepšuje celkový výkon systému a udržuje jej v dobrém stavu.