Apskatīsim dažus Cron darbu reālās dzīves piemērus.
- Pieņemsim, ka jums pieder vietne un katru dienu vēlaties nosūtīt visiem savas vietnes lietotājiem e-pastu. Viss, kas jums jādara, ir uzrakstīt e-pasta sū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 jūs vēlaties atgādināt visiem reklāmdevējiem, kuru bilance ir mazāka par 5 USD, uzlādēt. Viss, kas jums jādara, ir jāuzraksta skripts, kas pārbauda visu reklāmdevēju bilanci, un, kad tas ir mazāks par 5 USD, 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 skriptu palaistu ik pēc 5 līdz 10 minūtēm vai katru stundu.
Linux ir daudz citu cron darbu izmantošanas veidu.
Šajā rakstā es jums parādīšu, kā katru minūti Linux darbināt. Demonstrācijai izmantošu Debian 9 Stretch. Bet jūs varat izmantot jebkuru modernu Linux izplatīšanu pēc savas izvēles. Sāksim.
Crontab pamati:
Operētājsistēmā Linux jums tā nav jābūt sakne lai vadītu cron darbus. Varat palaist cron darbus kā jebkurš lietotājs. Katrs Linux lietotājs var izmantot a crontab failu, lai palaistu viņu pašu cron darbu kopu.
Pēc noklusējuma lietotājam nav crontab failu uz Linux. Jūs varat izveidot crontab failu ar šādu komandu:
$ crontab -e
Ja šo komandu izmantojat pirmo reizi, jums vajadzētu lūgt sarakstā izvēlēties teksta redaktoru. Es izvēlēšos nano, noklusējuma. Jūs varat izvēlēties sev tīkamāko. Kad esat pabeidzis, nospiediet
The crontab fails jāizveido (ja tas vēl nav pieejams) un jāatver ar iecienītāko 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.
Katras minūtes komandas izpildes sintakse:
Sintakse crontab fails ir šāds:
minūte stunda dayOfMonth mēnesis dayOfWeek commandToRunŠeit,
- minūti var būt 0 uz 59.
- stunda var arī būt 0 uz 59.
- dayOfMonth var būt 1 uz 31.
- mēnesī 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, jums to vajadzētu ierakstīt crontab failu šādi:
* * * * * commandToRunCrob darba vadīšana 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 skripts, man ir tikai šādas kodu rindas. Tas viss ir izveidot jaunu failu / home / shovon / bin / taimeris.žurnāls (ja tāda vēl nav) un pievieno tam komandas datuma izvadi.
Tagad pievienosim skriptu savam crontab un ļaujiet tai darboties katru minūti ar šādu rindu:
* * * * * / home / shovon / bin / taimeris.sh
Kad esat saglabājis crontab failu un izejiet no jaunā teksta redaktora crontab fails ir jāinstalē.
Pēc minūtes ir jauns fails taimeris.žurnāls tiek izveidots vajadzīgajā direktorijā, kā redzat zemāk redzamajā ekrānuzņēmuma sadaļā.
No taimeris.žurnāls žurnāla fails, ir skaidrs, ka skripts taimeris.sh darbojas katru minūti.
Kļūdu noķeršana no Cron darbiem:
Lai uzzinātu kļūdas no Cron darba, varat nosūtīt kļūdas uz a kļūda.žurnāls failu un parastās izejas uz piekļuvi.žurnāls failu, piemēram. Protams, failus var nosaukt kā vien vēlaties.
Lai to parādītu, es pārveidoju savu skriptu taimeris.sh nedaudz. Tagad kļūdas tiek nosūtītas uz kļūda.žurnāls failu / home / shovon / bin direktoriju un izvadi tiek nosūtīti uz piekļuvi.žurnāls iekš / home / shovon / bin direktorijā.
Sākumā / tmp / i_must_be_here fails nepastāv, tāpēc kļūdu redzu kļūda.žurnāls failu, kā redzat.
The piekļuvi.žurnāls fails šobrīd ir tukšs.
Tagad es izveidošu failu / tmp / i_must_be_here
Un, kā redzat, izeja ir piekļuvi.žurnāls failu tagad.
Ja vēlaties, izvadi un kļūdas tajā pašā failā varat novirzīt šādi:
Kā redzat, STDIN un STDERR izejas tiek nosūtītas uz ārā.žurnāls failu.
Pārliecinieties, ka pēdējais darbs ir pabeigts, pirms atkal sākat darbu:
Lai tas darbotos, jūs varat izveidot pagaidu failu tūlīt pēc darba sākšanas un noņemt to tieši pirms tā beigām. Pēc tam pirms darba sākšanas varat pārbaudīt, vai pastāv pagaidu fails. Ja tas tā notiek, varat iziet no darba un palaist darbu tikai tad, kad pagaidu fails nav pieejams.
Šis vienkāršais skripts to arī dara.
Kā redzat, taimeris.pid fails ir izveidots.
Lasot piekļuvi.žurnāls fails pierāda, ka cron darbs nedarbojas, pirms nav beidzies iepriekšējais cron darbs. Kā redzat, tas darbojās 01:32:01 un nākamreiz vajadzēja darboties 01:33:01, taču tas nenotika. Tā vietā tas darbojās aptuveni 3 minūtes vēlāk pulksten 01:35:01.
Cron darba rezultātu organizēšana ērtai atkļūdošanai:
Jūs varat labi formatēt izejas, lai jūsu cron darbu būtu vieglāk atkļūdot.
Piemērs tam, kā to var izdarīt, ir sniegts šajā skriptā.
Kā redzat, rezultāti, kļūdas un veiksmes ziņojumi tiek lieliski izdrukāti žurnāla failā.
Ar cron darbiem un čaulas skriptiem varat paveikt pārsteidzošas lietas. Es šeit parādīju dažas idejas. Bet debesis ir jūsu robeža. Jūtieties brīvi eksperimentēt ar visām jūsu idejām. Paldies, ka izlasījāt šo rakstu.