Katru minūti izpildiet Cron darbu

Run Cron Job Every Minute



Ja vēlaties palaist programmu vai skriptu fonā operētājsistēmā Linux, tad cron job ir ļoti svarīgs. Ar cron job palīdzību jūs varat izpildīt programmu vai skriptu fonā pēc noteiktā laika intervāla.

Apskatīsim dažus cron darbu piemērus reālajā dzīvē.







  • Pieņemsim, ka jums pieder vietne un vēlaties katru dienu visiem savas vietnes lietotājiem nosūtīt e -pastu. Viss, kas jums jādara, ir uzrakstīt e -pasta nosūtīšanas skriptu un iestatīt cron darbu, lai katru dienu palaistu šo skriptu.
  • Pieņemsim, ka jums pieder reklāmas aģentūra un vēlaties atgādināt visiem reklāmdevējiem, kuru bilance ir zemāka par 5 ASV dolāriem. Viss, kas jums jādara, ir jāraksta skripts, kas pārbauda visu reklāmdevēju atlikumu un, kad tas ir zemāks par 5 ASV dolāriem, tas nosūtīs paziņojumu uz reklāmdevēja mobilā tālruņa numuru vai e -pastu. Pēc tam iestatiet cron darbu, lai palaistu skriptu ik pēc 5 līdz 10 minūtēm vai katru stundu.

Linux ir daudz citu lietojumu cron darbiem.



Šajā rakstā es jums parādīšu, kā katru minūti palaist cron darbus operētājsistēmā Linux. Demonstrēšanai izmantošu Debian 9 Stretch. Bet jūs varat izmantot jebkuru modernu Linux izplatīšanu pēc jūsu izvēles. Sāksim.



Linux jums tam nav jābūt sakne lai veiktu cron darbus. Jūs varat palaist cron darbus kā jebkurš lietotājs. Katrs Linux lietotājs var izmantot a crontab failu, lai palaistu savu cron darbu kopu.





Pēc noklusējuma lietotājam nav a crontab failu operētājsistēmā Linux. Jūs varat izveidot a crontab failu ar šādu komandu:

$crontab-Un



Ja šo komandu izpildāt pirmo reizi, jums vajadzētu lūgt sarakstā izvēlēties teksta redaktoru. Es izvēlos nano , noklusējuma. Jūs varat izvēlēties sev tīkamāko. Kad esat pabeidzis, nospiediet .

The crontab fails ir jāizveido (ja tas vēl nav pieejams) un jāatver, izmantojot iecienīto teksta redaktoru. Tagad šī faila beigās varat pievienot savus cron darbus, un, kad esat apmierināts, vienkārši saglabājiet to un izejiet no teksta redaktora.

Komandas izpildīšanas sintakse ik pēc minūtes:

Sintakse crontab fails ir šāds:

minūti stunda dayOfMonth month dayOfWeek komandaToRun

Šeit,

  • minūtē var būt 0 uz 59 .
  • stunda var būt arī 0 uz 59 .
  • dayOfMonth var būt 1 uz 31 .
  • mēnesis var būt 1 uz 12 .
  • dayOfWeek var būt 0 uz 7 . 0 un 7 nozīmē svētdienu, 1 nozīmē pirmdienu, 2 nozīmē otrdienu un tā tālāk.

Lai palaistu a commandToRun komandu katru minūti, to vajadzētu ierakstīt crontab failu šādi:

* * * * *commandToRun

Krona darbs katru minūti:

Tagad, kad mēs zinām teorijas, pievienosim vienkāršu skriptu taimeris.sh uz crontab failu un uzziniet, kā to pārvaldīt.

Iekš taimeris.sh skriptu, man ir tikai šādas kodu rindas. Viss, kas jādara, ir izveidot jaunu failu /home/shovon/bin/timer.log (ja tāda vēl nav) un pievieno tam datuma komandas izvadi.

Tagad pievienosim skriptu mūsu crontab un ļaujiet tai darboties katru minūti ar šādu rindu:

* * * * * /mājas/Šovons/esmu/taimeris.sh

Kad esat saglabājis crontab failu un izejiet no jaunā teksta redaktora crontab fails jāinstalē.

Pēc minūtes tiek atvērts jauns fails taimeris.log ir izveidots vēlamajā direktorijā, kā redzams tālāk redzamajā ekrānuzņēmuma atzīmētajā sadaļā.

No taimeris.log žurnālfailu, ir skaidrs, ka skripts taimeris.sh darbojas katru minūti.

Cron Jobs kļūdas:

Lai noķertu cron darba kļūdas, varat tās nosūtīt uz error.log failu un parastās izejas uz access.log failu, piemēram. Protams, failus var nosaukt par visu, ko vēlaties.

Lai to pierādītu, es mainīju savu skriptu taimeris.sh nedaudz. Tagad kļūdas tiek nosūtītas uz error.log failu mapē / home / shovon / bin direktoriju un izejas tiek nosūtītas uz access.log iekš / home / shovon / bin direktoriju.

Sākumā ,. /tmp/i_must_be_šeit fails neeksistē, tāpēc es saņemu kļūdu error.log failu, kā redzat.

The access.log fails šobrīd ir tukšs.

Tagad es izveidošu failu /tmp/i_must_be_šeit

Un, kā redzat, izvade ir access.log failu tagad.

Ja vēlaties, varat novirzīt izvadi un kļūdas tajā pašā failā šādi:

Kā redzat, STDIN un STDERR izejas tiek nosūtītas uz out.log failu.

Pārliecinoties, ka pēdējais darbs ir pabeigts pirms darba atkārtotas izpildes:

Lai tas darbotos, varat izveidot pagaidu failu tūlīt pēc darba sākuma un noņemt to tieši pirms tā pabeigšanas. Pēc tam pirms darba sākšanas varat pārbaudīt, vai pagaidu fails pastāv. Ja tā notiek, varat iziet no darba un palaist darbu tikai tad, kad pagaidu fails nav pieejams.

Šis vienkāršais skripts to dara.

Kā redzat, taimeris.stulba fails ir izveidots.

Lasot access.log fails pierāda, ka cron darbs netiek palaists pirms iepriekšējā cron darba pabeigšanas. Kā redzat, tas darbojās 01:32:01 un nākamajā reizē tam vajadzēja darboties 01:33:01, bet tas nenotika. Tā vietā tas tika palaists 01:35:01, apmēram 3 minūtes vēlāk.

Cron darba izvades organizēšana ērtai atkļūdošanai:

Jūs varat labi formatēt izvadus, lai atvieglotu jūsu cron darbu atkļūdošanu.

Piemērs tam, kā to var izdarīt, ir sniegts šādā skriptā.

Kā redzat, izvades, kļūdas un veiksmes ziņojumi ir labi izdrukāti žurnāla failā.

Jūs varat darīt pārsteidzošas lietas, izmantojot cron darbus un čaulas skriptus. Šeit es parādīju dažas idejas. Bet debesis ir jūsu robeža. Jūtieties brīvi eksperimentēt ar savām idejām. Paldies, ka izlasījāt šo rakstu.