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:
- Přidejte adresář do
~/.local/etc
(napříkladcron.weekly
). - 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). - 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ší.