Pozrime sa na niektoré skutočné príklady úloh cron.
- Povedzme, že vlastníte webovú stránku a chcete každý deň posielať e-maily všetkým používateľom tejto webovej stránky. Všetko, čo musíte urobiť, je napísať skript na odoslanie e-mailu a nastaviť úlohu cron na každodenné spúšťanie tohto skriptu.
- Povedzme, že vlastníte reklamnú agentúru a chcete pripomenúť všetkým inzerentom, ktorých zostatok je nižší ako 5 $, aby sa dobili. Musíte len napísať skript, ktorý skontroluje zostatok všetkých inzerentov a keď bude nižší ako 5 $, odošle upozornenie na mobilné číslo alebo e-mail inzerenta. Potom nastavte úlohu cron na spustenie skriptu každých 5 až 10 minút alebo každú hodinu.
V systéme Linux existuje mnoho ďalších použití úloh cron.
V tomto článku vám ukážem, ako spustiť úlohy cron každú minútu v systéme Linux. Na ukážku použijem Debian 9 Stretch. Môžete však použiť ľubovoľnú modernú distribúciu systému Linux podľa vášho výberu. Začnime.
Základy Crontabu:
V systéme Linux nemusíte byť koreň za účelom spustenia úloh cron. Úlohy cron môžete spustiť ako každý užívateľ. Každý používateľ systému Linux môže používať a crontab súbor na spustenie vlastnej sady úloh cron.
V predvolenom nastavení používateľ nemá crontab súbor v systéme Linux. Môžete vytvoriť crontab súbor s nasledujúcim príkazom:
$ crontab -e
Ak spúšťate tento príkaz prvýkrát, mali by ste byť požiadaní, aby ste zo zoznamu vybrali textový editor. Vyberiem nano, predvolený. Môžete si vybrať ten, ktorý sa vám páči. Po dokončení stlačte
The crontab súbor by mal byť vytvorený (ak už nie je k dispozícii) a otvoriť ho pomocou vášho obľúbeného textového editora. Teraz môžete na koniec tohto súboru pridať svoje vlastné úlohy cron a akonáhle budete spokojní, jednoducho ich uložte a ukončite textový editor.
Syntax spustenia príkazu každú minútu:
Syntax súboru crontab súbor je nasledovný:
minúta hodina dayOfMonth mesiac dayOfWeek commandToRunTu,
- minútu môže byť 0 do 59.
- hodinu môže byť tiež 0 do 59.
- dayOfMonth môže byť 1 do 31.
- mesiac môže byť 1 do 12.
- deň v týždni môže byť 0 do 7. 0 a 7 znamená nedeľa, 1 znamená pondelok, 2 znamená utorok a tak ďalej.
Spustiť a commandToRun príkaz každú minútu, mali by ste ho napísať do súboru crontab súbor nasledovne:
* * * * * commandToRunSpustenie úlohy Crob každú minútu:
Teraz, keď poznáme teórie, pridajme jednoduchý skript časovač.š do crontab súbor a uvidíte, ako ho spravovať.
V časovač.š skript, mám iba nasledujúce riadky kódov. Všetko, čo robí, je vytvorenie nového súboru / home / shovon / bin / timer.log (ak ešte neexistuje) a pripojí k tomu výstup príkazu date.
Teraz pridajme skript k nášmu crontab a nechajte ju bežať každú minútu pomocou nasledujúceho riadku:
* * * * * / domov / lopata / kôš / časovač.š
Akonáhle uložíte crontab súbor a ukončite nový textový editor crontab súbor by mal byť nainštalovaný.
Po uplynutí minúty bude nový súbor časovač.log je vytvorený v požadovanom adresári, ako vidíte v označenej časti snímky obrazovky nižšie.
Z časovač.log log súbor, je zrejmé, že skript časovač.š beží každú minútu.
Chytanie chýb z úloh Cron:
Ak chcete zachytiť chyby z úlohy cron, môžete chyby poslať do a chyba.log súbor a normálne výstupy do prístup.log súbor napr. Súbory môžete samozrejme pomenovať, kamkoľvek chcete.
Aby som to demonštroval, upravil som svoj skript časovač.š trochu. Teraz sa chyby odosielajú na chyba.log súbor v / home / shovon / bin adresár a výstupy sa odosielajú do prístup.log v / home / shovon / bin adresár.
Najskôr / tmp / i_must_be_here súbor neexistuje, takže sa mi zobrazuje chyba v chyba.log súbor, ako vidíte.
The prístup.log súbor je momentálne prázdny.
Teraz vytvorím súbor / tmp / i_must_be_here
A ako vidíte, výstup je v prístup.log súbor teraz.
Ak chcete, môžete presmerovať výstup a chyby v rovnakom súbore nasledujúcim spôsobom:
Ako vidíte, výstupy STDIN a STDERR sa posielajú do von.log spis.
Uistite sa, že je posledná úloha dokončená, skôr ako úlohu znova spustíte:
Aby to fungovalo, môžete vytvoriť dočasný súbor tesne po začiatku úlohy a odstrániť ho tesne pred jej dokončením. Potom môžete skontrolovať, či dočasný súbor existuje, pred začatím úlohy. Ak sa tak stane, môžete úlohu opustiť a spustiť ju, až keď bude dočasný súbor nedostupný.
Tento jednoduchý skript to presne robí.
Ako vidíte, časovač.pid súbor je vytvorený.
Čítanie prístup.log súbor dokazuje, že úloha cron sa nespustí skôr, ako sa dokončí spustenie predchádzajúcej úlohy cron. Ako vidíte, bežal o 01:32:01 a nabudúce mal bežať o 01:33:01, ale nebol. Namiesto toho to bežalo o 01:35:01, asi o 3 minúty neskôr.
Organizácia výstupov úloh Cron pre ľahké ladenie:
Výstupy môžete pekne naformátovať, aby ste uľahčili ladenie svojej úlohy cron.
Príklad toho, ako to možno urobiť, je uvedený v nasledujúcom skripte.
Ako vidíte, výstupy, chyby a správy o úspechu sú pekne vytlačené v protokolovom súbore.
S úlohami cron a shell skriptmi môžete robiť úžasné veci. Tu som predviedol niektoré z myšlienok. Ale obloha je tvojim limitom. Nebojte sa experimentovať s akýmikoľvek nápadmi, ktoré máte. Ďakujeme, že ste si prečítali tento článok.