Vykonajte úlohu Cron každú minútu

Run Cron Job Every Minute



Ak chcete na Linuxe spustiť program alebo skript na pozadí, potom je cron job veľmi dôležitý. Pomocou úloh cron môžete po zadanom časovom intervale spustiť program alebo skript na pozadí.

Pozrime sa na niektoré príklady skutočného života cron jobov.







  • Povedzme, že vlastníte webovú stránku a chcete poslať všetkým používateľom vašich webových stránok e -mail každý deň. Jediné, čo musíte urobiť, je napísať skript na odosielanie e -mailov a nastaviť úlohu cron na spustenie tohto skriptu každý deň.
  • Povedzme, že vlastníte reklamnú agentúru a chcete pripomenúť všetkým inzerentom, ktorých zostatok je nižší ako 5 $, aby sa dobili. Jediné, čo musíte urobiť, je napísať skript, ktorý skontroluje zostatok všetkých inzerentov, a keď je pod 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ť cron úlohy každú minútu v systéme Linux. Na ukážku použijem Debian 9 Stretch. Môžete však použiť akúkoľvek modernú distribúciu Linuxu podľa vlastného výberu. Začnime.



V systéme Linux nemusíte byť koreň za účelom spustenia úloh cron. Úlohy cron môžete spustiť ako každý používateľ. Každý používateľ systému Linux môže používať súbor crontab súbor na spustenie vlastnej sady úloh cron.





V predvolenom nastavení používateľ nemá príponu crontab súbor v systéme Linux. Môžete vytvoriť a crontab súbor s nasledujúcim príkazom:

$crontab-A



Ak tento príkaz spustíte 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. Keď skončíte, stlačte .

The crontab súbor by mal byť vytvorený (ak už nie je k dispozícii) a otvoriť ho vo vašom obľúbenom textovom editore. Teraz môžete na koniec tohto súboru pridať svoje vlastné úlohy cron a keď budete spokojní, stačí ich uložiť a ukončiť textový editor.

Syntax spustenia príkazu každú minútu:

Syntax súboru crontab súbor je nasledujúci:

minúta hodina deňOfMesiac mesiac dayOfWeek príkazToRun

Tu,

  • minútu môže byť 0 do 59 .
  • hodinu môže byť tiež 0 do 59 .
  • deň mesiaca 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 príkazToRun príkaz každú minútu, mali by ste ho napísať do súboru crontab súbor nasledovne:

* * * * *príkazToRun

Spustenie úlohy Crob každú minútu:

Teraz, keď poznáme teórie, pridajme jednoduchý skript časovač.sh do crontab súbor a zistite, ako ho spravovať.

V časovač.sh skript, mám len nasledujúce riadky kódov. Všetko, čo robí, je vytvoriť nový súbor /home/shovon/bin/timer.log (ak už neexistuje) a pripojí k nemu výstup príkazu date.

Teraz pridáme skript do nášho crontab a nechajte ho bežať každú minútu s nasledujúcim riadkom:

* * * * * /Domov/shovon/dopoludnia/časovač.sh

Keď uložíte súbor crontab súbor a opustite textový editor, nový crontab súbor by mal byť nainštalovaný.

Po uplynutí minúty je nový súbor časovač.log je vytvorený v požadovanom adresári, ako môžete vidieť v označenej časti snímky obrazovky nižšie.

Z časovač.log log súbor, je zrejmé, že skript časovač.sh beží každú minútu.

Chytanie chýb z úloh Cron:

Ak chcete zachytiť chyby z úlohy cron, môžete ich odoslať na adresu a error.log súbor a normálne výstupy do access.log napríklad súbor. Súbory môžete samozrejme pomenovať ľubovoľne.

Aby som to demonštroval, upravil som svoj skript časovač.sh trochu. Teraz sú chyby odoslané na error.log súbor v súbore / home / shovon / bin adresára a výstupy sa odošlú do access.log v / home / shovon / bin adresár.

Najskôr /tmp/i_must_be_here súbor neexistuje, takže sa zobrazí chyba v súbore error.log súbor, ako vidíte.

The access.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 vo formáte access.log podajte teraz.

Ak chcete, môžete presmerovať výstup a chyby v rovnakom súbore nasledovne:

Ako vidíte, výstupy STDIN a STDERR sú odoslané do out.log súbor.

Uistenie sa, že posledná úloha je dokončená a spustená pred opätovným spustením úlohy:

Aby to fungovalo, môžete vytvoriť dočasný súbor hneď po spustení úlohy a odstrániť ho tesne pred dokončením. Potom môžete pred spustením úlohy skontrolovať, či dočasný súbor existuje. Ak sa tak stane, môžete úlohu opustiť a úlohu spustiť iba vtedy, ak dočasný súbor nie je k dispozícii.

Tento jednoduchý skript to robí.

Ako vidíte, časovač.pid súbor je vytvorený.

Čítanie access.log súbor dokazuje, že úloha cron sa nespustí, kým sa nedokončí predchádzajúca úloha cron. Ako vidíte, bežalo to o 01:32:01 a nabudúce by to malo bežať o 01:33:01, ale nestalo sa. Namiesto toho bežal o 01:35:01, asi o 3 minúty neskôr.

Organizácia výstupov úlohy Cron pre jednoduché ladenie:

Výstupy môžete pekne naformátovať, aby ste uľahčili ladenie vašej úlohy cron.

Príklad, ako sa to dá urobiť, je uvedený v nasledujúcom skripte.

Ako vidíte, výstupy, chyby a správy o úspechu sú pekne vytlačené v súbore denníka.

Vďaka cron úlohám a skriptom Shell môžete robiť úžasné veci. Tu som predviedol niektoré nápady. Ale obloha je váš limit. Neváhajte experimentovať s akýmikoľvek nápadmi, ktoré máte. Ďakujem za prečítanie tohto článku.