Cron je efektívny a populárny nástroj príkazového riadku, ktorý sa používa na plánovanie širokej škály úloh v stanovenom čase bez interakcie používateľa. Naplánované úlohy sú známe ako úlohy cron, zatiaľ čo crontab je zoznam súborov obsahujúcich úlohy cron.
V tomto článku vysvetlíme rôzne ukážky, ktoré vám umožňujú upravovať a používať súbor crontab na plánovanie úloh v systéme Debian 10.
Cron možno použiť na automatizáciu úloh v nasledujúcich scenároch:
- Zálohovanie bežiaceho plánu,
- Kontrola miesta na disku v konkrétnom intervale,
- Prebieha automatická údržba,
- Pravidelné odstraňovanie nechcených súborov,
- Prebieha diagnostika siete
Syntax
S cronom je jednoduchšie pracovať, ak pochopíte jeho syntax. Všeobecná syntax na použitie cron je:
* * * * / cesta / k / skriptu.šKaždé z polí zodpovedá nasledujúcemu:
Minúta (0-59) Hodina (0-24) Deň_Mesiaca (1-7) Mesiac_roku (1-12)Príkaz Day_of_the_Week (0-6)
Inštaluje sa Cron
Cron je predinštalovaný v Debiane 10. Ak však vo vašom systéme chýba, nainštalujte ho spustením nasledujúceho príkazu:
$ sudo apt nainštalovať cronZobraziť crontab
Ak chcete zobraziť súbor crontab, použite nasledujúci príkaz:
$ crontab -lAk chcete zobraziť súbor crontab konkrétneho používateľa, použite nasledujúci príkaz:
$ sudo crontab -u užívateľ -lUpraviť crontab
Úprava súboru crontab aktuálneho používateľa:
$ crontab -eÚprava súboru crontab konkrétneho používateľa:
$ sudo crontab -u užívateľAk upravujete súbor crontab prvýkrát, zobrazí sa výzva na výber editora:
Po výbere editora sa zobrazí nasledujúce okno.
Napríklad chcete spustiť záložný skript s názvom „zálohovanie“.sh “, ktorý sa nachádza v adresári dokumentov každý deň o 2:00. Ak to chcete urobiť, budete musieť do súboru crontab pridať nasledujúci riadok:
0 2 * * * / Dokumenty / zálohovanie.š
Vo vyššie uvedenom okne môžete po jednom pridávať svoje úlohy cron. Po dokončení súbor uložte a ukončite. Potom sa všetky úlohy cron automaticky spustia v zadanom intervale.
Odstráňte crontab
Ak chcete odstrániť súbor crontab, zadajte do terminálu nasledujúci príkaz:
$ crontab -rTeraz si ukážeme rad príkladov úloh cron na stroji s Linuxom.
1. Spustite úlohu cron každú minútu
Ak chcete vykonať úlohu cron každú minútu, pridajte do svojho súboru crontab nasledujúci riadok:
* * * * * / cesta / k / skriptu.š2. Spustite úlohu cron každých 10 minút
Ak chcete naplánovať vykonávanie úlohy cron po každých 10 minútach, pridajte do svojho súboru crontab nasledujúci riadok.
* / 10 * * * * / cesta / k / skriptu.š3. Spustite úlohu cron v konkrétnych mesiacoch
Naplánovať vykonanie úlohy cron na konkrétne mesiace e.g. Marec, august, december, pridajte úlohu cron do svojho súboru crontab nasledujúcim spôsobom:
* * * jan, may, aug * / path / to / script.š4. Spustite úlohu cron vo vybrané dni
Ak chcete, aby sa vaša úloha cron vykonávala vo vybrané dni, predpokladajme nedeľu a piatok o 17:00, malo by to vyzerať takto.
0 17 * * slnko, pá / cesta / do / skript.š5. Spustite úlohu cron každý deň v konkrétny čas
Ak chcete naplánovať vykonávanie úlohy cron každý deň v konkrétny čas, povedzme o 3:00, pridajte tento riadok do svojho súboru crontab.
0 3 * * * / cesta / k / skriptu.š6. Spustite úlohu cron v konkrétny deň
Ak chcete naplánovať vykonanie úlohy cron na konkrétny deň, povedzme každú nedeľu, pridajte tento riadok do svojho súboru crontab.
0 0 * * SUN / cesta / do / skript.šÚloha bude prebiehať každú nedeľu o 00:00.
7. Spustite viac úloh v jednej úlohe cron
Ak chcete naplánovať viac úloh v jednej úlohe cron, pridajte všetky skripty do súboru crontab ich oddelením bodkočiarkou.
* * * * * / cesta / k / skriptu1.sh; / cesta / do / skript2.š8. Spustite úlohu cron ďalej každý všedný deň
Ak chcete naplánovať vykonanie úlohy cron na každý deň v týždni, ktorý je od pondelka do piatku, budete musieť pridať tento riadok do svojho súboru crontab.
0 0 * * 1-5 / cesta / do / skript.šÚloha bude prebiehať každý pracovný deň o 00:00.
9. Spustite úlohu cron dvakrát denne
Naplánovať prácu tak, aby fungovala dvakrát denne, e.g. o 6:00 a 15:00 budete musieť do svojho súboru crontab pridať tento riadok:
0 6,15 * * * / cesta / k / skriptu.š10. Spustite úlohu cron každú hodinu
Ak chcete naplánovať vykonanie úlohy cron na každú hodinu v minúte 0, musíte do svojho súboru crontab pridať tento riadok:
0 * * * * / cesta / k / skriptu.šNapríklad, ak je aktuálny čas 14:00, úloha bude bežať o 15:00, 16:00 atď.
11. Spustite úlohu cron každé 3 hodiny
Ak chcete naplánovať spustenie úlohy cron na každé 3 hodiny v minúte 0, musíte do svojho súboru crontab pridať tento riadok:
0 * / 3 * * * / cesta / k / skriptu.šNapríklad, ak je aktuálny čas 14:00, úloha bude bežať o 17:00, 20:00 atď.
12. Prvý deň v mesiaci spustite úlohu cron o 16:00
Ak chcete naplánovať spustenie úlohy prvý deň v mesiaci o 16:00, budete musieť do svojho súboru crontab pridať tento riadok:
0 16 1 * * / cesta / k / skriptu.šStruny v Crontabu
Namiesto dlhých opakujúcich sa príkazov môžete tiež použiť nasledujúce reťazce.
@ hourly- Spustiť úlohu cron každú hodinu i.e. „0 * * * *“@ polnoc - Spustite úlohu cron každý deň i.e. „0 0 * * *“
@ denne- rovnako ako o polnoci
@ týždenne - Spustite úlohu cron každý týždeň, t.j.e. „0 0 * * 0“
@ month- Spustite úlohu cron každý mesiac i.e. „0 0 1 * *“
@ ročne - každý rok spustite úlohu cron, i.e. „0 0 1 1 *“
@ ročne- rovnaké ako @ ročne
@ reboot- Spustenie úlohy cron pri každom zavedení
Napríklad ak chcete spustiť úlohu cron každý deň v prvej minúte a prvej hodine, pridajte nasledujúci riadok:
@denne / cesta / do / skript.šNapríklad na spustenie úlohy cron pri každom reštarte servera:
@ reštart / cesta / do / skript.šTo je všetko! V tomto článku sme sa naučili automatizovať rôzne úlohy pomocou systému crontab v systéme Debian. Použitím vyššie uvedených príkladov môžete naplánovať zahájenie ľubovoľného druhu úlohy bez akejkoľvek interakcie používateľa.