Chcete spouštět příkaz nebo skript denně, týdně, měsíčně nebo podle jiného stanoveného plánu? V Ubuntu to lze snadno provést pomocí úlohy cron.
Cron je plánovač úloh založený na čase, který spouští příkaz nebo skript pravidelně v pevně stanovených časech, datech nebo intervalech. Obvykle se používá pro údržbu nebo správu systému, i když může být užitečný pro obecné účely, např. stahování souborů z internetu v pravidelných intervalech.
1. Upravit soubory crontab:
Uživatelé mohou snadno nastavit úlohu cron nakonfigurováním souboru crontab příkazem crontab. Je předinstalovaný v systémech založených na Ubuntu. A každý uživatel má svůj vlastní konfigurační soubor crontab.
b.) Naplánovat úlohu pro aktuálního uživatele:
Chcete-li spustit příkaz nebo skript aktuálním uživatelem, jednoduše otevřete terminál ze spouštěče systémové aplikace a spusťte příkaz:
crontab -e
Poprvé se zobrazí výzva k výběru editoru pro úpravu konfiguračního souboru. Vyberte si ten, který se vám líbí, nebo stiskněte Enter a použijte výchozí nano textový editor.
b.) Pokud potřebujete oprávnění root nebo sudo:
Pokud příkaz nebo skript potřebuje oprávnění uživatele sudo nebo root, můžete místo toho spustit následující příkaz:
sudo crontab -e
Vytvoří (pokud ne skončí) nebo otevře konfigurační soubor pro uživatele root.
c.) Určete uživatele, který má spustit plánovací úlohu:
Můžete přidat -u <user_name>
příznak k určení uživatele, například ji.
sudo crontab -u ji -e
Uživatel může být root, takže totéž udělá pro sudo crontab -e
:
sudo crontab -u root -e
2. Nastavte časový interval, příkaz nebo skript pro pravidelné spouštění:
Po spuštění příkazu v kroku 1 se otevře konfigurační soubor v okně terminálu (nebo příkazové konzoli).
Nyní přejděte dolů a přidejte nový řádek:
* * * * * <command or script>
Prvních 5 hvězdiček „*“ určuje čas a datum, podle toho je změňte.
Příklady:
a.) Chcete-li například každou neděli o půlnoci (00:00) spustit skript python3 ve složce Dokumenty, použijte:
0 0 * * 0 python3 /home/ji/Documents/script.py
Zde:
- první 0 určuje minutu, pro každou minutu použijte *.
- druhá 0 určuje hodinu, pro každou hodinu použijte *.
- třetí příznak * určuje den v měsíci, každý den, pokud není zadán den v týdnu.
- čtvrtá vlajka * říká každý měsíc.
- pátý příznak (třetí 0) určuje den v týdnu. Od 0 do 6 znamená neděli až sobotu.
b.) Spusťte echo "hello world!"
příkaz každý den v 16:30, přidejte tento řádek:
30 16 * * * echo "hello world!"
c.) Můžete použít */n
běžet pro každý n-tý časový interval. A použijte několik konkrétních časových intervalů s čárkami.
Například spusťte příkaz každý pátek v první, druhou a třetí hodinu každou 5. minutu (01:00, 01:05, 01:10, …, 02:00, 02:05, 02:10, …, 03:55).
*/5 1,2,3 * * 5 echo "hello world!"
Nakonec uložte konfigurační soubor. Pokud upravujete pomocí nano, stiskněte na klávesnici Ctrl+X, napište y a stisknutím klávesy Enter to uložte.
Původní článek