GNU/Linux >> Znalost Linux >  >> Linux

Pro lepší crontab použijte anacron

V roce 2021 existuje více důvodů, proč lidé milují Linux než kdykoli předtím. V této sérii se podělím o 21 různých důvodů, proč používat Linux. Automatizace je jedním z nejlepších důvodů, proč používat Linux.

Jedna z mých oblíbených věcí na Linuxu je jeho ochota dělat práci za mě. Místo provádění opakujících se úkolů, které mi zabírají čas, jsou náchylné k chybám nebo na které pravděpodobně zapomenu, naplánuji Linux, aby je udělal za mě.

Příprava na automatizaci

Termín "automatizace" může být stejně zastrašující, jako je přitažlivý. Zjistil jsem, že pomáhá přistupovat k tomu modulárně.

1. Co chcete, aby se stalo?

Nejprve musíte vědět, jaký výsledek chcete dosáhnout. Používáte vodoznak na obrázky? Odebíráte soubory z přeplněného adresáře? Provádíte zálohu důležitých dat? Jasně si definujte úkol, abyste věděli, na co se zaměřit. Pokud je nějaký úkol, který děláte každý den, mnohem méně častěji než jednou denně, pak by mohl být kandidátem na automatizaci.

2. Naučte se aplikace, které potřebujete

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

Rozdělte velké úkoly na malé součásti a naučte se, jak vyrobit každý výsledek ručně, ale opakovatelným a předvídatelným způsobem. Mnoho z toho, co lze na Linuxu udělat, lze naskriptovat, ale je důležité si uvědomit vaše současná omezení. Je obrovský rozdíl mezi učením se, jak automatizovat změnu velikosti několika obrázků, aby je bylo možné pohodlně poslat e-mailem, a používáním strojového učení ke generování propracovaných uměleckých děl pro váš týdenní zpravodaj. Jedna z těchto věcí se můžete naučit za odpoledne a druhá může trvat roky. Všichni však musíme někde začít, takže začněte v malém a vždy hledejte způsoby, jak se zlepšit.

3. Automatizujte to

Použijte automatizační nástroj v Linuxu, aby se to stalo pravidelně. Tento krok pokrývá tento článek!

Chcete-li něco automatizovat, potřebujete skript, který automatizuje úlohu. Při testování je nejlepší dělat věci jednoduše, takže úkolem, který tento článek automatizuje, je vytvoření souboru s názvem hello v /tmp adresář:

#!/bin/sh

touch /tmp/hello

Zkopírujte a vložte tento jednoduchý skript do textového souboru a pojmenujte jej example .

Cron

Vestavěným automatizačním řešením, které je součástí každé instalace Linuxu, je systém cron. Uživatelé Linuxu mají tendenci označovat cron obecně jako metodu, kterou používáte k plánování úlohy (obvykle nazývaná „cron job“), ale existuje několik aplikací, které poskytují funkce cron. Nejuniverzálnější je cronie; jeho výhodou je, že nedělá předpokládejme, že váš počítač je vždy zapnutý, jako to dělají historické aplikace cron určené pro systémové administrátory.

Ověřte, který systém cron poskytuje vaše distribuce Linuxu. Pokud je to něco jiného než cronie, pravděpodobně si můžete nainstalovat cronie ze softwarového úložiště vašeho distribuce. Pokud vaše distribuce nemá balíček pro cronie, můžete použít starý anacron místo toho balíček. anacron příkaz je součástí cronie, takže bez ohledu na to, jak jej získáte, chcete mít jistotu, že máte anacron než budete pokračovat. Anacron může vyžadovat oprávnění správce root v závislosti na vašem nastavení.

$ which anacron
/usr/sbin/anacron

Úkolem Anacronu je zajistit, aby vaše automatizační úlohy byly prováděny pravidelně. Za tímto účelem anacron zkontroluje, kdy se úloha naposledy spustila, a poté zkontroluje, jak často jste mu řekli, aby úlohy spouštěl.

Předpokládejme, že nastavíte anacron tak, aby spouštěl skript jednou za pět dní. Pokaždé, když počítač zapnete nebo jej probudíte z režimu spánku, anacron prohledá jeho protokoly, aby zjistil, zda potřebuje spustit úlohu. Pokud úloha běžela před pěti nebo více dny, spustí ji anacron.

Úlohy Cron

Mnoho linuxových systémů je dodáváno s několika úlohami údržby, které má cron provést. Rád nechávám své úlohy odděleně od systémových úloh, takže si vytvořím adresář ve svém domovském adresáři. Konkrétně se jedná o skrytou složku s názvem ~/.local ("místní" v tom smyslu, že je přizpůsobeno pro váš uživatelský účet spíše než pro váš "globální" počítačový systém), takže vytvořím podadresář etc/cron.daily zrcadlit cronův obvyklý domov v mém systému. Musíte také vytvořit zařazovací adresář, abyste mohli sledovat poslední spuštění úloh.

$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron

Jakýkoli skript, který chcete pravidelně spouštět, můžete umístit do ~/.local/etc/cron.daily adresář. Zkopírujte example skript do adresáře nyní a označte jej jako spustitelný pomocí příkazu chmod.

$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example

Dále nastavte anacron tak, aby spouštěl všechny skripty umístěné v ~/.local/etc/cron.daily adresář.

Anacron

Ve výchozím nastavení je velká část systému cron považována za doménu správce systému, protože se často používá pro důležité úlohy nízké úrovně, jako je rotace souborů protokolu a aktualizace certifikátů. Konfigurace ukázaná v tomto článku je navržena pro běžného uživatele, který nastavuje úlohy osobní automatizace.

Chcete-li nakonfigurovat anacron pro spouštění úloh cronu, vytvořte konfigurační soubor na adrese /.local/etc/anacrontab :

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1  0  cron.mine    run-parts /home/tux/.local/etc/cron.daily/

Tento soubor říká anacronu, aby spustil všechny spustitelné skripty (run-parts ) naleznete v ~/.local/etc/cron.daily každý jeden den (tj. denně), s nulaminutovým zpožděním. Někdy se používá několik minut zpoždění, aby váš počítač nedostal všechny možné úkoly hned po přihlášení. Tato nastavení jsou však vhodná pro testování.

cron.mine hodnota je libovolný název procesu. Říkám tomu cron.mine ale můžete to nazvat cron.personal nebo penguin nebo cokoliv chcete.

Ověřte svůj anacrontab syntaxe souboru:

$ anacron -T -t ~/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Ticho znamená úspěch.

Přidání anacronu do .profile

Nakonec musíte zajistit, aby anacron běžel s vaší místní konfigurací. Protože anacron spouštíte jako běžný uživatel a ne jako uživatel root, musíte jej nasměrovat do svých místních konfigurací — anacrontab soubor, který anacronu říká, co má dělat, a adresář spool, který pomáhá anacronu sledovat, kolik dní uplynulo od posledního provedení každé úlohy:

anacron -fn -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

-fn možnosti říkají anacronu, aby ignoroval časová razítka, což znamená, že jej nutíte ke spuštění vaší úlohy cron bez ohledu na to, co se děje. Toto je výhradně pro testovací účely.

Testování úlohy cron

Nyní, když je vše nastaveno, můžete práci otestovat. Technicky to můžete otestovat bez restartu, ale nejrozumnější je restartovat, protože to je to, co je navrženo, aby zvládlo:přerušené a nepravidelné relace přihlášení. Věnujte chvíli restartu počítače, přihlaste se a poté vyhledejte testovací soubor:

$ ls /tmp/hello
/tmp/hello

Za předpokladu, že soubor existuje, byl váš příklad skriptu úspěšně proveden. Nyní můžete odebrat možnosti testu z ~/.profile , ponechte toto jako svou konečnou konfiguraci:

anacron -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Používání anacronu

Máte nakonfigurovanou infrastrukturu osobní automatizace, takže do ~/.local/etc/cron.daily můžete umístit libovolný skript, který má váš počítač spravovat. adresář a poběží podle plánu.

Je jen na vás, jak často chcete úlohy spouštět. Váš vzorový skript se spouští jednou denně. To samozřejmě závisí na tom, zda je váš počítač v daný den zapnutý a vzhůru. Pokud používáte počítač v pátek, ale odložíte si ho na víkend, skript se v sobotu a neděli nespustí. V pondělí se však skript spustí, protože anacron bude vědět, že uplynul alespoň jeden den. Do ~/.local/etc můžete přidat týdenní, čtrnáctidenní nebo dokonce měsíční adresáře naplánovat širokou škálu intervalů.

Chcete-li přidat nový interval:

  1. Přidejte adresář do ~/.local/etc (například cron.weekly ).
  2. Přidejte řádek do ~/.local/etc/anacrontab pro spouštění skriptů v novém adresáři. Pro týdenní interval by konfigurace byla:
    7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/

    (s 0 hodnota je volitelně o určitý počet minut, aby se zdvořile oddálilo spuštění skriptu).

  3. Umístěte své skripty do cron.weekly adresář.

Vítejte v automatizovaném životním stylu. Nebude se vám to zdát, ale brzy se stanete mnohem produktivnější.


Linux
  1. Jak používat cron na Linuxu

  2. Jak používat pokročilý rsync pro velké zálohy Linuxu

  3. Jak používat systemd-nspawn pro obnovu systému Linux

  1. Linux – jakou aplikaci použít pro kalendář?

  2. Použijte Najít a najít k vyhledání souborů v Linuxu

  3. Služba Linux OS „anacron“

  1. Jak používám Ansible a anacron pro automatizaci

  2. Linux vs Windows:Který OS je lepší pro PC hry

  3. Linux vs Windows – Proč je Linux lepší pro programování a vývoj webu