Cron Jobs: Pabeigt iesācēju apmācību

Cron Jobs Complete Beginners Tutorial



Cron ir visnoderīgākā utilīta Linux vai UNIX līdzīgai operētājsistēmai, kas ļauj izpildīt komandas vai skriptus noteiktā grafikā bez jebkādas lietotāja iejaukšanās. Plānotās komandas un skripti tiek nosaukti arī kā cron darbi. To galvenokārt izmanto atkārtotu darbu automatizēšanai, piemēram, plānoto dublējumu palaišanai, pagaidu failu tīrīšanai, sistēmas apkopei un dažādiem citiem periodiskiem darbiem. Tas ir līdzīgs Windows OS uzdevumu plānotājam.

Šajā apmācībā mēs jums sniegsim pamatinformāciju par visu, kas jums jāsaprot, lai plānotu darbu ar cron. Tas ietver cron pamata sintaksi, crontab faila rediģēšanu, darba plānošanu ar cron ar dažiem piemēriem, cron darba skatīšanu utt.







Krona darba pamati

Sapratīsim dažus cron darba pamatus.



Kas ir Crond?

Crond ir dēmons Linux sistēmā, kas darbojas fonā un katru minūti pārbauda, ​​vai tajā laikā ir ieplānots kāds darbs. Ja ir, tas veic šo darbu, citādi paliek neaktīvs.



Cron darba sintakse

Cron darba sintakse ir šāda:





* * * * *komandu/skripts

No kreisās puses:

  • Pirmais * atbilst protokolam (0–59)
  • Otrais * atbilst stundām (0–23)
  • Trešais * atbilst mēneša dienai (1-31)
  • Ceturtais * atbilst gada mēnesim (1-12)
  • Piektais * atbilst nedēļas dienai (no 0 līdz 6, no svētdienas līdz sestdienai)

Lai laukā norādītu vairākas vērtības, izmantojiet šādus operatora simbolus:



  1. Zvaigznīte (*): Lai norādītu visas iespējamās lauka vērtības
  2. Svītra (-): Uz s norādiet vērtību diapazonu
  3. Komats (,): Lai norādītu vērtību sarakstu
  4. Atdalītājs (/): Lai norādītu soļa vērtību

Crontab faila rediģēšana

Crontab ir fails, kas satur plānotos darbus noteiktā sintaksē. Ir divu veidu crontab faili; viens sistēmai specifiskiem cron darbiem un otrs lietotājam specifiskiem cron darbiem.

System cron darbavietas

Sistēmas mēroga cron darbi atrodas /etc/crontab failu un /etc/cron.d direktorijā, un tie tiek palaisti cauri /etc/cron.hourly , /etc/cron.daily , /etc/cron.nedēļā un /etc/cron.monthly. Šiem failiem var piekļūt tikai sistēmas administrators.

Sistēmas administrators var definēt cron darbu, izmantojot šādu komandu:

$nano /utt/crontab

Šeit ir darba sintakse /etc/crontab fails:

# min hr dayofmonth month dayofweek lietotājvārda komanda
* * * * *lietotājs1ifconfig

Lietotājam specifiski cron darbi

Lietotājam specifiski cron darbi atrodas mapē / var / spool / cron / crontabs direktoriju. Lai gan šos darbus varat rediģēt manuāli, ieteicams tos rediģēt, izmantojot komandu crontab -e.

Standarta lietotājs var definēt cron darbu, izmantojot šādu komandu:

$crontab-Un

Piemēram, ja esat pieteicies kā testa lietotājs, palaižot komandu crontab -e, tiks rediģēts testa lietotāja crontab fails. Līdzīgi, ja esat pieteicies kā root lietotājs, komanda crontab -e rediģēs saknes lietotāja crontab failu.

Terminālī izdodiet zemāk esošo komandu, lai rediģētu crontab failu jebkuram citam lietotājam:

$sudocrontab-u <lietotājvārds> -Un

Piemēram, ja esat pieteicies kā test1 lietotājs un vēlaties rediģēt test2 lietotāja crontab failu, komanda būtu šāda:

$sudocrontab-utests2-Un

Šeit ir cron darba sintakse, ko var pievienot crontab failā:

# m h dayofmonth month dayofweek komanda
* * * * * ifconfig

Lietotāja specifiskajos darbos varat redzēt, ka nav ievadīts lietotājvārds.

Crontab komandas

Komanda crontab tiek izmantota, lai rediģētu, uzskaitītu un noņemtu cron darbus:

  • crontab -e Lai rediģētu pašreizējā lietotāja crontab failu
  • crontab -l Lai parādītu crontab faila saturu
  • crontab -u [lietotājvārds] Lai rediģētu jebkura cita lietotāja crontab failu
  • crontab -r Lai noņemtu pašreizējā lietotāja crontab failu
  • crontab -i Lai parādītu uzvedni pirms pašreizējā lietotāja crontab faila noņemšanas

Darba plānošana ar Kronu

Izmantojot Cron, jūs varat izpildīt darbu noteiktā laikā, datumā un intervālos ar minimālo vienību minūtēs, t.i., jūs varat izpildīt darbu katru minūti.

Lai ieplānotu darbu ar cron, atveriet crontab failu, izmantojot iepriekšējā sadaļā aprakstīto metodi. Kad esat atvēris crontab failu, jums tiks piedāvāts izvēlēties teksta redaktoru. Ievadiet ciparu, lai izvēlētos vēlamo teksta redaktoru. Ritiniet uz leju līdz faila apakšai un pievienojiet darbus iepriekš aprakstītajā sintaksē. Katra faila rinda nosaka vienu komandu. Pirmie pieci ieraksti rindā norāda plānoto laiku, bet pēdējais ieraksts norāda, kura komanda vai skripts jāizpilda.

Piemērs:

Nākamajā crontab faila rindiņā tiks ieplānots, ka cron uzdevums izpildīs komandu/skriptu ik pēc 30 minūtēm pēc 5 stundām katru nedēļas dienu no pirmdienas līdz sestdienai.

* /30 5 * * 1-6komandu/skripts

Minūtes

Šajā laukā mēs norādām minūtes, kad vēlamies, lai komanda tiktu izpildīta. Tas ir norādīts no 0 līdz 59. * šajā laukā nozīmē darbu izpildīt katru minūti. Iepriekšējā crontab rindā */30 norāda cron uzdevumam palaist norādīto komandu/skriptu ik pēc 30 minūtēm.

Stundas

Šajā laukā mēs norādām stundas, kad vēlamies, lai komanda tiktu izpildīta. Tas ir norādīts no 0 līdz 23. Šajā laukā * nozīmē darbu izpildīt katru stundu. Iepriekšējā crontab rindā vērtība 5 norāda cron uzdevumam palaist norādīto komandu/skriptu ik pēc piecām stundām.

Mēneša diena

Šajā laukā mēs norādām konkrētās mēnešu dienas, kad vēlamies, lai komanda tiktu izpildīta. Tas ir norādīts no 1 līdz 31. * šajā laukā nozīmē katru dienu. Iepriekšējā crontab rindā * norāda cron uzdevumam katru dienu palaist norādīto komandu/skriptu.

Gada mēnesis

Šajā laukā mēs norādām konkrētos mēnešus, kad vēlamies, lai komanda tiktu izpildīta. Tas ir norādīts no 1 līdz 12. * šajā laukā nozīmē katru mēnesi. Iepriekšējā crontab rindā * norāda cron uzdevumam katru mēnesi palaist norādīto komandu/skriptu.

Nedēļas diena

Šajā laukā mēs norādām konkrētās nedēļas dienas, kad vēlamies, lai komanda tiktu izpildīta. Tas ir norādīts no 0 līdz 6 no svētdienas līdz sestdienai (0 svētdienai un 6 sestdienai). * Šajā laukā nozīmē katru dienu nedēļā. Iepriekšējā crontab rindā * norāda cron uzdevumam katru nedēļu nedēļā palaist norādīto komandu/skriptu.

Cron Jobs piemēri

Šeit ir daži cron darbu piemēri:

Veiciet cron darbu ik pēc 15 minūtēm

Lai ieplānotu cron darba izpildi ik pēc 15 minūtēm, pievienojiet zemāk esošo rindiņu crontab failā:

* /piecpadsmit * * * *komandu/skripts

Katru dienu pulksten 5 no rīta veiciet cron darbu

Lai ieplānotu cron darba izpildi katru dienu pulksten 5:00, pievienojiet zemāk esošo rindiņu crontab failā:

0 5 * * *komandu/skripts

Veiciet cron darbu katru dienu pulksten 17:00

Lai ieplānotu, ka cron darbs tiek izpildīts katru dienu pulksten 17:00, pievienojiet zemāk esošo rindiņu crontab failā:

0 17 * * *komandu/skripts

Veiciet cron darbu katra mēneša pirmajā dienā pulksten 9 no rīta

Lai ieplānotu cron darba izpildi katra mēneša pirmajā dienā pulksten 9, pievienojiet crontab failā šādu rindu:

0 9 1 * *komandu/skripts

Katru 15. martu katru stundu veiciet cron darbu

Lai ieplānotu cron darbu katru stundu 15. martā, pievienojiet zemāk esošo rindiņu crontab failā:

0 * piecpadsmit 3 *komandu/skripts

Veiciet cron darbu ik pēc 5 stundām

Lai ieplānotu cron darbu ik pēc 5 stundām, pievienojiet zemāk esošo rindiņu crontab failā:

0 * /5 * * *komandu/skripts

Veiciet cron darbu ik pēc 15 minūtēm

Lai ieplānotu cron darba izpildi ik pēc 15 minūtēm, pievienojiet zemāk esošo rindiņu crontab failā:

* /piecpadsmit * * * *

Izmantojot virknes

Lai definētu darbu, var izmantot arī šādas virknes:

  1. @stundas: Veikt darbu reizi stundā, t.i. 0 * * * *
  2. @pusnakts: Veikt darbu vienu reizi dienā, t.i. 0 0 * * *
  3. @katru dienu: tāds pats kā pusnakts
  4. @iknedēļas: Veikt darbu reizi nedēļā, t.i. 0 0 * * 0
  5. @mēnesis: Veikt darbu reizi mēnesī, t.i. 0 0 1 * *
  6. @katru gadu: Veikt darbu reizi gadā, t.i. 0 0 1 1 *
  7. @gads: tas pats @reizi gadā
  8. @pārstartēt: Lai veiktu darbu vienu reizi katrā palaišanas reizē

Piemēram, lai katru nedēļu palaistu skriptu vai komandu, ieraksts crontab failā būtu šāds:

@iknedēļas pavēle/skripts

Iepriekš definēti Cron katalogi

Linux ir daži iepriekš definēti cron direktoriji, kuros saglabātie skripti tiek izpildīti automātiski. Ja zem šiem direktorijiem ievietojam kādu skriptu, tas tiks automātiski izpildīts konfigurētajā laikā.

  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.nedēļā

Piemēram, lai skriptu izpildītu reizi mēnesī, tas jāievieto mapē /etc/cron.monthly.

Skatīt Cron Jobs

Skatīt pašreizējā lietotāja darbus

Izmantojiet šo komandu, lai apskatītu visus ieplānotos pašreizējā lietotāja cron darbus:

$crontab-viņi

Skatiet root lietotāju darbus

Lai skatītu visus saknes lietotāja ieplānotos darbus, terminālī izdodiet šādu komandu:

$kaķis /utt/crontab

Jums būs jāpiesakās kā root lietotājam vai jāizpilda komanda kā sudo.

Skatiet citu lietotāju darbus

Lai skatītu visus konkrētā lietotāja ieplānotos darbus, terminālī izdodiet šādu komandu, aizstājot to ar faktisko lietotājvārdu:

$sudocrontab-u <lietotājvārds> -viņi

Lai palaistu šo komandu, jums būs nepieciešamas sudo privilēģijas.

Skatiet stundas cron darbus

Lai skatītu visus cron darbus, kas ir konfigurēti darbam katru stundu, terminālī izdodiet šādu komandu:

$ls -viņi /utt/cron.stundu

Skatiet ikdienas cron darbus

Lai apskatītu visus cron darbus, kas konfigurēti darboties katru dienu, terminālī izdodiet šādu komandu:

$ls -viņi /utt/cron.daily/

Skatiet iknedēļas cron darbus

Lai apskatītu visus cron darbus, kas ir konfigurēti darbībai katru nedēļu, terminālī izdodiet šādu komandu:

$ls -viņi /utt/cron.nedēļas/

Skatiet ikmēneša cron darbus

Lai skatītu visus cron darbus, kas ir konfigurēti darbam katru mēnesi, terminālī izlaidiet šādu komandu:

$ls -viņi /utt/ik mēnesi/

Dublējiet visus Cron darbus

Ieteicams failā saglabāt visu cron darbu dublējumkopiju, lai izdzēšanas gadījumā varētu atgūties. Lai dublētu visus pašreizējos darbus, izmantojiet pāradresācijas operatoru, lai novirzītu crontab -l izvadi uz failu.

$crontab-viņi >backup_cron.txt

Visu plānoto Cron darbu noņemšana

Lai noņemtu visus ieplānotos cron darbus, izmantojiet karodziņu -r šādi:

$crontab-r

Cron atļauja

Mēs varam ierobežot piekļuvi komandai crontab, izmantojot divus failus: / etc/cron.allow un/etc/cron.deny.

  • /etc/cron.allow - Pievienojiet lietotājus (pa vienam katrā rindā), kuriem vēlaties atļaut piekļuvi crontab komandām. Šie lietotāji var izpildīt grafika darbus.
  • /etc/cron.deny - Pievienojiet lietotājus (pa vienam katrā rindā), kuriem vēlaties liegt piekļuvi crontab komandām. Šie lietotāji nevar izpildīt plānotos darbus.

Crontab sintakses ģeneratori

Ir dažas vietnes, kas ļauj ģenerēt sintaksi crontabs. Šīs vietnes atvieglo crontab izteiksmes ģenerēšanu, neatceras sintaksi. Lai gan ir pieejamas dažādas vietnes sintakses ģeneratoriem, piemēram crontabgenerator.com , crontab-generator.org , un cronmaker.com . Tas, kuram es galvenokārt dodu priekšroku un kas man šķita noderīgs, ir crontab.guru . Pamatojoties uz lietotāja ievadīto informāciju, tas ģenerē crontab izteiksmi, kuru varat kopēt un ielīmēt crontab failā.

Secinājums

Šajā apmācībā mēs esam izskaidrojuši cron darbu pamatus, to sintaksi un to, kā to iestatīt. Mēs arī esam apsprieduši, kā apskatīt cron darbus, izveidot dublējumu un noņemt tos, ja tie vairs nav nepieciešami.