cron je plánovač úloh pro operační systémy Linux a Unix. Dodává se předinstalovaný ve všech distribucích Linuxu a je nejvhodnější pro automatizaci opakujících se úloh.
Aby cron správně fungoval, musíte pravidelně kontrolovat, zda nástroj ve vašem systému funguje správně. Můžete to udělat čtyřmi různými způsoby, včetně kontroly stavu služby cron, zkoumání protokolů cron, spuštění testovací úlohy cron a výpisu běžících procesů ve vašem systému.
Table of Contents
Co je cron?
Tichá obsluha úloh, cron, automatizuje a plánuje systémové úlohy. Uživatelé, kteří konfigurují a udržují softwarová prostředí, využívají cron k plánování úloh, jako jsou příkazy nebo skripty shellu – nazývané také úlohy cron – tak, aby se spouštěly pravidelně v pevně stanovených časech nebo intervalech.
cron automatizuje úlohy údržby nebo správy systému, které možná budete muset často provádět.
V Linuxu je k dispozici několik implementací. Verze, kterou budete mít, závisí na vaší distribuci. „Vixie cron“, pojmenovaný po svém původním vývojáři Paulu Vixie, je běžný a výchozí na Debianu a Ubuntu. Arch nemá žádnou verzi cronu ve prospěch časovačů systemd.
cronie je fork Vixie cronu, který je k dispozici jako standardní balíček Arch. Chcete-li jej nainstalovat, použijte pacman:
sudo pacman -S cronie
Poté jej spusťte a povolte pomocí:
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 zkontrolovat, zda cron funguje na Linuxu
Zde je několik způsobů, jak můžete zkontrolovat, zda cron funguje správně:
1. Zkontrolujte stav služby cron v systému Linux
Jedním ze způsobů, jak zkontrolovat, zda cron funguje, je zkontrolovat stav služby cron spuštěním základního příkazu Linuxu. Otevřete terminál Linux stisknutím Ctrl + Alt + T a pomocí příkazu systemctl zkontrolujte stav cronu:
sudo systemctl status cron
Pokud vidíte následující výstup, znamená to, že cron je aktivní a ve vašem systému běží správně.
Ale co když je cron v neaktivním stavu, jak je uvedeno níže?
Službu můžete spustit takto:
sudo systemctl start cron.service
Po spuštění služby cron ji povolte, aby se spustila pokaždé, když se systém restartuje:
sudo systemctl enable cron.service
2. Zkontrolujte protokoly cron v systému Linux
Dalším způsobem, jak zkontrolovat, zda cron funguje správně, je prozkoumání souborů protokolu. protokoly cron jsou v Linuxu uloženy v adresáři /var/log/syslog.
syslog je protokol, který systémy Linux používají k centralizaci protokolů dat událostí. Protokoly jsou pak přístupné k provádění auditů, monitorování, odstraňování problémů, hlášení a dalších nezbytných provozních úkolů IT.
Protokoly úloh cron můžete zobrazit v souboru syslog spuštěním následujícího příkazu:
grep 'cron' /var/log/syslog
Uvidíte podobný výstup indikující, že cron běží správně a jeho protokoly se ukládají do souboru protokolu:
Protože složka syslog obsahuje spolu s protokoly cron další systémové protokoly, může být trochu složité zkoumat v souboru pouze protokoly související s cronem. Můžete to vyřešit vytvořením samostatného souboru protokolu, který ukládá pouze položky cron, které se objevují v souboru syslog.
V tomto příkladu použijeme nano editor, ale můžete použít jakýkoli editor, který vám vyhovuje.
Otevřete následující soubor pomocí nano:
nano /etc/rsyslog.d/50-default.conf
Najděte řádek, který začíná:
#cron.*
Odkomentujte tento řádek odstraněním znaku hash (#). Poté uložte a ukončete soubor stisknutím Ctrl + X, poté stiskněte Y a stiskněte Enter.
Restartujte službu rsyslog zadáním tohoto příkazu:
sudo service rsyslog restart
Nyní obdržíte protokoly v souboru cron.log umístěném v adresáři /var/log.
Pokud váš terminál nedokáže načíst žádné protokoly, může to znamenat, že cron neběží. V takovém případě potvrďte, zda cron funguje nebo nepoužívá jiné metody.
3. Spuštění úlohy cron na Linuxu
Můžete také zkontrolovat, zda cron funguje, jednoduše vytvořením testovací úlohy cron a jejím provedením. Pokud úloha při provádění úkolu uspěje, znamená to, že funguje dobře.
Nejprve musíte vytvořit skript Bash. Skriptování Bash vám umožňuje automatizovat každodenní úkoly na Linuxu.
Vytvořme Bash skript, který vypíše „můj cronjob funguje!“ do souboru TXT. Chcete-li vytvořit soubor, nejprve zjistěte svůj aktuální pracovní adresář pomocí tohoto příkazu:
pwd
Vytvořte soubor v aktuálním adresáři pomocí dotykového příkazu:
touch file.txt
Poté vytvořte soubor Bash pomocí nano:
nano script.sh
Přidejte do souboru následující obsah:
#! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt
Ujistěte se, že jste uvedli správné umístění textového souboru, který jste vytvořili. Uložte a ukončete soubor stisknutím Ctrl + X, poté Y a stiskněte Enter.
Udělte oprávnění ke spuštění skriptu Bash:
chmod +x script.sh
Nyní vytvořte úlohu cron pro spuštění skriptu. Chcete-li to provést, otevřete soubor crontab pomocí:
crontab -e
Na konec souboru zadejte následující řádek.
* * * * * /path/to/script.sh
Pět hvězdiček odpovídá času provedení, kdy první hvězdička představuje minuty (0-59), druhá představuje hodiny (ve 24hodinovém čase, takže 13:00 je 13, půlnoc začíná v 0), třetí hvězdička znamená den (0-7, 0 a 7 jsou neděle), čtvrtá označuje měsíc a poslední hvězdička označuje rok.
V souboru je také uveden název spustitelného souboru a jeho cesta.
Po uložení a zavření souboru se na terminálu zobrazí zpráva „crontab: install new crontab“.
Chcete-li zkontrolovat, zda úloha cron fungovala nebo ne, přejděte do adresáře file.txt a vytiskněte její obsah na terminálu pomocí cat:
cat file.txt
To znamená, že cron funguje dobře.
4. Zkontrolujte Spuštěné procesy v systému Linux
Dalším způsobem, jak můžete zkontrolovat, zda démon cron funguje, je výpis běžících procesů ve vašem systému. Toho lze dosáhnout pomocí příkazu ps. Démon cron se zobrazí ve výstupu jako crond.
ps aux | grep cron
To potvrzuje, že proces cron běží na vašem systému Linux.
Automatizujte a plánujte systémové úlohy pomocí cron
cron je jedním z nejdůležitějších nástrojů v Linuxu, který umožňuje systému efektivně pracovat. Někdy musíte při řešení problémů se systémem zkontrolovat, zda cron funguje.
Můžete toho dosáhnout buď kontrolou protokolů cron nebo zobrazením běžících procesů ve vašem systému. Stav cronu můžete také zkontrolovat pomocí nástroje systemctl. Kromě toho vám spuštění testovací úlohy cronu může také říci, zda je služba spuštěna nebo ne.
Hladká práce cronu vám umožňuje automatizovat a plánovat každodenní systémové úlohy. Většina úloh cronu je automaticky vytvářena nainstalovanými aplikacemi. Automatizace a plánování úloh zlepšuje celkový výkon systému a udržuje jej v dobrém stavu.