Na počítačích je důležité, aby se věci dějí podle pravidelného a předvídatelného plánu. Je to důležité, protože jako lidé můžeme být někdy špatní v tom, abychom si pamatovali, že máme dělat věci spolehlivě, protože se rozptylujeme, máme toho na srdci příliš nebo jsme na dovolené. Počítače jsou opravdu dobré v tom, že dělají věci podle plánu, ale člověk musí počítač naprogramovat, než počítač začne jednat.
Svým způsobem cron systém je snadný a základní úvod do programování. Úpravou souboru můžete svůj počítač přimět, aby dělal, co chcete, aby dělal. Nemusíte ani vědět, kde je soubor uložen. Stačí zadat jednoduchý příkaz, zadat „recept“, který má váš počítač dodržovat, a uložit svou práci. Od té doby bude váš počítač provádět vaše pokyny v určený čas, dokud nedostane pokyn k zastavení.
Podle návrhu cron není složitý systém. Zde je to, co o tom potřebujete vědět.
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Co je cron?
cron příkaz je v Linuxu a Unixu tak všudypřítomný a byl napodobován a přetvářen tak často, že je to téměř obecný termín pro něco, co se děje podle plánu . Je to forma automatizace, a přestože existují různé její implementace (Dillonův cron, Vixieho cron, chrony a další) a variace jako anacron a systemd timers, syntaxe a workflow zůstaly v podstatě stejné po celá desetiletí.
Cron funguje na „spoolovém“ systému, podobně jako tiskárny a e-mail. Pokud jste nevěděli, že tiskárny a e-mail používají zařazování, nevadí, protože smyslem zařazovacího souboru je, že byste o něm neměli moc přemýšlet. V systému Linux adresář /var/spool je navržen jako centrální rozbočovač pro důležité, ale nízkoúrovňové soubory, se kterými uživatel nemá přímo komunikovat. Jedna ze spoolů spravovaných v /var/spool je cron tabulky nebo zkráceně „crontab“. Každý uživatel – včetně vás – v systému Linux má crontab. Uživatelé mohou upravovat, zobrazovat a odstraňovat své vlastní crontab. Kromě toho mohou uživatelé používat svůj crontab k plánování úkolů. cron systém sám monitoruje crontab a zajišťuje, že jakákoliv úloha uvedená v crontab bude provedena v určený čas.
Upravit nastavení cronu
Svůj crontab můžete upravit pomocí crontab společně s -e (pro úpravu ) možnost. Ve výchozím nastavení většina systémů vyvolává vim textový editor. Pokud stejně jako já nepoužíváte Vim, můžete si nastavit jiný editor ve svém ~/.bashrc soubor. Nastavil jsem svůj na Emacs, ale můžete také zkusit Nano, Kate nebo jakýkoli jiný váš oblíbený editor. EDITOR proměnná prostředí definuje, jaký textový editor používáte ve svém terminálu, zatímco VISUAL proměnná definuje, jaký editor používáte v grafickém režimu:
export EDITOR=nano
export VISUAL=kate
Obnovte svou relaci shellu pomocí nového nastavení:
$ source ~/.bashrc Nyní můžete upravit svůj crontab pomocí preferovaného editoru:
$ crontab -e Naplánovat úkol
cron systém je v podstatě kalendářový systém. Můžete říct cron jak často chcete, aby se úloha spouštěla pomocí pěti různých atributů:minuta, hodina, datum, měsíc, den v týdnu. Pořadí těchto atributů je striktní a nemusí být nutně intuitivní, ale můžete si je představit jako filtry nebo masky. Ve výchozím nastavení si můžete myslet, že je vše nastaveno na vždy nebo každý . Tento záznam by se spustil touch /tmp/hello na vrcholu každé minuty během každé hodiny každého dne po celý rok:
* * * * * touch /tmp/hello Tento všeobjímající plán můžete omezit nastavením konkrétních definic pro každý atribut. Chcete-li, aby úloha běžela v půlhodině každé hodiny, nastavte minuty na 30 :
30 * * * * touch /tmp/hello Tento pokyn můžete dále omezit na konkrétní hodinu. Tato úloha probíhá každé ráno ve 3:30:
30 3 * * * touch /tmp/hello Můžete také spustit úlohu pouze prvního dne každého měsíce:
30 3 1 * * touch /tmp/hello Měsíc můžete nastavit pomocí 1 pro leden až 12 pro prosinec a den můžete nastavit pomocí 0 pro neděli až po 6 pro sobotu. Tato úloha běží ve 3:15 během měsíce dubna, pouze v pondělí:
15 3 * 4 1 touch /tmp/hello Nastavit přírůstky
Všechna tato nastavení odpovídají hodnotě přesně . Můžete také použít cron zápis pro spouštění úloh po uplynutí nastavené doby. Úlohu můžete například spouštět každých 15 minut:
*/15 * * * * touch /tmp/hello Můžete spustit úlohu v 10:00 každé tři dny:
* 10 */3 * * touch /tmp/hello Úlohu můžete spustit každých šest hodin:
* */6 * * * touch /tmp/hello Cronův zkrácený text
Moderní cron implementace přidaly pohodlnou zkratku pro běžné rozvrhy. Jsou to:
@hourly@daily@weekly@monthly@yearly or @annually
Seznam úloh cron
Pomocí crontab můžete vidět seznam naplánovaného cron pracovní místa:
$ crontab -l
15 3 * 4 1 touch /tmp/hello
Odstranění crontab
Až budete s crontabem hotovi, můžete jej odstranit pomocí -r možnost:
$ crontab -r -i
-i volba znamená interaktivní . Před smazáním souboru vás vyzve k potvrzení.
Co cron umí
Jedna věc je vědět, jak používat cron , ale jiná věc je vědět, k čemu to použít. Klasickým případem použití je dobrý plán zálohování. Pokud je váš počítač většinu dne nebo celý den a celou noc zapnutý, můžete naplánovat rutinní zálohování důležitého oddílu. Spouštím zálohovací aplikaci s názvem rdiff-backup na můj primární datový oddíl denně ve 3:00:
$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/
Dalším běžným využitím je údržba systému. Na ploše Slackware aktualizuji svůj katalog místního úložiště každý pátek odpoledne:
$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update
Také bych mohl každé tři dny v 15:00 spustit skript Ansible, abych si udělal pořádek ve složce Stažené:
$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml
Malá investice do zdraví vašeho výpočetního prostředí je dlouhá cesta. Jsou zde deduplikační skripty, velikost souboru a /tmp monitory adresářů, nástroje pro změnu velikosti fotografií, přesuny souborů a mnoho dalších podřadných úkolů, které byste si mohli naplánovat na spouštění na pozadí, aby byl váš systém přehledný. Pomocí cron , váš počítač se o sebe dokáže postarat způsobem, který si jen přeji, aby to dělal můj fyzický byt.
Zapamatovat nastavení cronu
Kromě vymýšlení proč potřebujete cron , nejtěžší věc na cron podle mých zkušeností si pamatuji jeho syntaxi. Opakujte si to pro sebe, znovu a znovu, dokud si to neuložíte do paměti:
Minuty, hodiny, datum, měsíc, den v týdnu.
Minuty, hodiny, datum, měsíc, den v týdnu.
Minuty, hodiny, datum, měsíc, den v týdnu.
Ještě lépe, stáhněte si náš bezplatný cheatsheet, abyste měli klíč po ruce, když ho budete nejvíce potřebovat!