Pojďme se podívat na některé z reálných příkladů úloh cron.
- Řekněme, že vlastníte web a chcete každý den posílat všem uživatelům vašeho webu e-mail. Jediné, co musíte udělat, je napsat skript pro odeslání e-mailu a nastavit úlohu cron, aby tento skript spouštěl každý den.
- Řekněme, že vlastníte reklamní agenturu a chcete připomenout všem inzerentům, jejichž zůstatek je nižší než 5 $, aby se dobili. Musíte pouze napsat skript, který zkontroluje zůstatek všech inzerentů a pokud je nižší než 5 $, odešle oznámení na mobilní číslo nebo e-mail inzerenta. Poté nastavte úlohu cron tak, aby spouštěla skript každých 5 až 10 minut nebo každou hodinu.
V Linuxu existuje mnoho dalších použití úloh cron.
V tomto článku vám ukážu, jak spouštět úlohy cron každou minutu v systému Linux. Pro demonstraci budu používat Debian 9 Stretch. Můžete však použít libovolnou moderní distribuci systému Linux podle vašeho výběru. Začněme.
Základy Crontabu:
V systému Linux nemusíte být vykořenit za účelem spuštění úloh cron. Úlohy cron můžete spouštět jako každý uživatel. Každý uživatel v systému Linux může používat a crontab soubor pro spuštění vlastní sady úloh cron.
Ve výchozím nastavení uživatel nemá crontab soubor v systému Linux. Můžete vytvořit crontab soubor s následujícím příkazem:
$ crontab -e
Pokud tento příkaz spouštíte poprvé, měli byste být požádáni, abyste vybrali textový editor ze seznamu. Vyberu nano, výchozí. Můžete si vybrat ten, který se vám líbí. Až budete hotovi, stiskněte
The crontab soubor by měl být vytvořen (pokud již není k dispozici) a otevřít pomocí oblíbeného textového editoru. Nyní můžete přidat své vlastní úlohy cron na konec tohoto souboru a jakmile budete šťastní, jednoduše je uložte a ukončete textový editor.
Syntaxe spuštění příkazu každou minutu:
Syntaxe crontab soubor je následující:
minuta hodina dayOfMonth měsíc dayOfWeek commandToRunTady,
- minuta může být 0 na 59.
- hodina může také být 0 na 59.
- denMěsíc může být 1 na 31.
- Měsíc může být 1 na 12.
- den v týdnu může být 0 na 7. 0 a 7 znamená neděle, 1 znamená pondělí, 2 znamená úterý atd.
Spustit a commandToRun příkaz každou minutu, měli byste to napsat do crontab soubor takto:
* * * * * commandToRunSpuštění úlohy Crob každou minutu:
Nyní, když známe teorie, přidejme jednoduchý skript časovač.sh do crontab soubor a uvidíte, jak jej spravovat.
V časovač.sh skript, mám pouze následující řádky kódů. Vše, co dělá, je vytvoření nového souboru / home / shovon / bin / timer.log (pokud již neexistuje) a připojí k němu výstup příkazu date.
Nyní přidejme skript k našemu crontab a nechte to běžet každou minutu pomocí následujícího řádku:
* * * * * / home / shovon / bin / timer.sh
Jakmile uložíte crontab soubor a opustit nový textový editor crontab soubor by měl být nainstalován.
Po minutě je nový soubor časovač.log je vytvořen v požadovaném adresáři, jak vidíte v označené části obrazovky níže.
Z časovač.log log soubor, je zřejmé, že skript časovač.sh běží každou minutu.
Chytání chyb z úloh Cron:
Chcete-li zachytit chyby z úlohy cron, můžete chyby odeslat do a chyba.log soubor a normální výstupy do přístup.log soubor například. Soubory můžete samozřejmě pojmenovat, jak chcete.
Abych to ukázal, upravil jsem svůj skript časovač.sh trochu. Nyní jsou chyby odeslány chyba.log soubor v / home / shovon / bin adresář a výstupy jsou odeslány do přístup.log v / home / shovon / bin adresář.
Nejprve / tmp / i_must_be_here soubor neexistuje, takže dostanu chybu v souboru chyba.log soubor, jak vidíte.
The přístup.log soubor je v tuto chvíli prázdný.
Nyní vytvořím soubor / tmp / i_must_be_here
A jak vidíte, výstup je v přístup.log soubor nyní.
Pokud chcete, můžete přesměrovat výstup a chyby ve stejném souboru následujícím způsobem:
Jak vidíte, výstupy STDIN a STDERR jsou odesílány do ven.log soubor.
Zajistěte, aby byla poslední úloha dokončena, než ji znovu spustíte:
Aby to fungovalo, můžete vytvořit dočasný soubor těsně po spuštění úlohy a odebrat jej těsně před dokončením. Poté můžete před spuštěním úlohy zkontrolovat, zda dočasný soubor existuje. Pokud ano, můžete opustit úlohu a spustit úlohu pouze v případě, že dočasný soubor není k dispozici.
Tento jednoduchý skript to právě dělá.
Jak vidíte, časovač.pid soubor je vytvořen.
Čtení přístup.log soubor dokazuje, že úloha cron se nespustí dříve, než se dokončí spuštění předchozí úlohy cron. Jak vidíte, běžel v 01:32:01 a příště měl běžet v 01:33:01, ale ne. Místo toho to běželo v 01:35:01, asi o 3 minuty později.
Organizace výstupů úloh Cron pro snadné ladění:
Výstupy můžete pěkně naformátovat, aby se vaše cron práce snáze ladila.
Příklad toho, jak toho lze dosáhnout, je uveden v následujícím skriptu.
Jak vidíte, výstupy, chyby a zprávy o úspěchu jsou pěkně vytištěny v souboru protokolu.
S úlohami cron a shell skripty můžete dělat úžasné věci. Ukázal jsem zde některé nápady. Ale nebe je váš limit. Nebojte se experimentovat s nápady, které máte. Děkujeme za přečtení tohoto článku.