GNU/Linux >> Znalost Linux >  >> Linux

Linuxové tipy pro používání cronu k plánování úloh

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!


Linux
  1. Linuxové tipy pro používání GNU Screen

  2. 8 tipů pro příkazový řádek Linuxu

  3. Tipy a triky pro použití CUPS pro tisk s Linuxem

  1. Plánování úloh pomocí linuxového příkazu cron

  2. RHEL 7 – Poznámky RHCSA:Plánujte úlohy pomocí at a cron

  3. Použití proměnných v SQLCMD pro Linux

  1. 3 tipy pro tisk s Linuxem

  2. Plánování systémových úloh pomocí Cronu na Linuxu

  3. 8 tipů pro spolehlivou automatizaci systému Linux