Šajā rakstā tiks izskaidroti plānošanas uzdevumi un skriptu palaišana regulāri, izmantojot cron darbus.
Kas ir Krona?
Cron ir uzdevumu plānošanas programma, kas darbojas fonā kā process. To var izmantot, lai periodiski palaistu noteiktus darbus, kas ir ieplānoti, izmantojot iepriekš definēto noteikumu kopumu. Cron ir iepriekš instalēts lielākajā daļā Linux izplatīšanas gadījumu vai pieejams krātuvēs, lai instalētu manuāli.
Cron Presets
Cron uz Ubuntu nāk ar iepriekš noteiktu plānotāju kopu. Tos varat pārbaudīt, palaižot zemāk esošo komandu:
$ ls / etc / cron.*Parasti šīs mapes ir “/ etc / cron.katru stundu ”,“ / etc / cron.katru dienu ”,“ / etc / cron.mēnesī ”un“ / etc / cron.iknedēļas".
Vienkārši ievietojiet vēlamos skriptus vienā no šīm mapēm, lai veiktu automatizētus uzdevumus stundā, dienā, mēnesī vai nedēļā.
Ņemiet vērā, ka cron pēc noklusējuma izmanto “/ bin / sh” apvalku. Ja cron skriptos kā čaulu vēlaties izmantot “/ bin / bash”, jums jāizmanto “!# / bin / bash ”hashbang skripta faila augšdaļā vai definējiet čaulu kā“ SHELL = / bin / bash ”mainīgo plānotā bash skripta pirmajā rindā. “SHELL” vides mainīgā ignorēšana darbojas arī tālāk aprakstītajā crontab redaktorā.
Ne visi sistēmas vides mainīgie var būt pakļauti cron darbiem. Tāpēc parasti ir laba ideja manuāli definēt svarīgus vides mainīgos skriptā, kuru ieplānojis cron.
Crontab
Crontab ļauj jums pašiem noteikt ieplānotos uzdevumus. Jūs varat to izmantot, lai konfigurētu cron grafikus, kas atšķiras no četriem iepriekš aprakstītajiem standarta cron iepriekšējiem iestatījumiem.
Lai crontab iestatītu ieplānotu uzdevumu, vispirms palaidiet crontab redaktoru, izmantojot tālāk norādīto komandu:
$ crontab -eTagad faila beigās varat pievienot ierakstu šādā formātā:
minūte stunda diena mēnesis darbdiena / pilna / ceļš / uz / skripts.shKur:
- minūte: jebkura vērtība diapazonā no 0 līdz 59
- stunda: jebkura vērtība diapazonā no 0 līdz 23, 0 ir pusnakts
- diena: jebkura vērtība diapazonā no 1 līdz 31
- mēnesis: jebkura vērtība diapazonā no 1 līdz 12
- darba diena: jebkura vērtība diapazonā no 0 līdz 6, 0 ir svētdiena
Zemāk esošajā crontab ierakstā tiks parādīts darbvirsmas ekrānuzņēmums un tas tiks glabāts jūsu mājas direktorijā vienu reizi plkst. 15:13 2. martā, kā arī katru marta otrdienu plkst. 15:13.
13 15 2 3 2 burkānsLai uzskaitītu visus crontab ierakstus, izmantojiet zemāk esošo komandu:
$ crontab -lVairāk piemēru
Cron uzdevumus vislabāk var izskaidrot, izmantojot piemērus, tāpēc šeit ir daži piemēri, kas periodiski uzņems darbvirsmas ekrānuzņēmumus un saglabās tos mājas mapē.
Bez pieciem plānošanas mainīgajiem, cron darbu plānošanai izmanto arī dažas īpašas virknes. Šīs virknes ir:
- @hourly: darbs tiek veikts katru stundu
- @daily / @midnight: darbs tiek veikts katru dienu
- @ katru nedēļu: darbs notiek reizi nedēļā
- @ mēnesis: darbs notiek reizi mēnesī
- @ gadu / @ gadu: darbs notiek reizi gadā
- @reboot: darbs tiek izpildīts reizi ik pēc atsāknēšanas / pieteikšanās
Zemāk esošajā crontab ierakstā ekrānšāviņš tiks parādīts reizi ikreiz:
@reboot scrot“@Reboot” var aizstāt ar citām īpašām iepriekšminētām virknēm.
Izmantojot zvaigznīti vai aizstājējzīmi jebkura no pieciem mainīgajiem lielumiem, darbs tiks atkārtots visos jaunajos mainīgā mainīgajos gadījumos. Zemāk esošajā ierakstā katru minūti tiks veikts ekrānuzņēmums:
* * * * * BurkānsKatru stundu:
0 * * * * burkānsKatru dienu pulksten 18:00:
0 18 * * * burkānsKatru mēnesi 6. dienā plkst. 18:00:
0 18 6 * * burkānsIzmantojiet “/”, lai palaistu skriptu ar fiksētu periodisku intervālu 30 minūtes (darbojas ik pēc 30 minūtēm):
* / 30 * * * * burkānsVarat izmantot ar komatiem atdalītus mainīgos, lai noteiktu intervālu atkārtotu skripta izpildi. Tālāk sniegtajā piemērā tiks uzņemts darbvirsmas ekrānuzņēmums katras jaunas stundas 1., 4. un 5. minūtē.
1,4,5 * * * * burkānsCrontab ierakstu pārbaude
Crontab ierakstu definēšana var būt sarežģīta, taču atkļūdošana vai pārbaude, vai tie darbojas pareizos laika zīmogos, ir vēl sarežģītāka. Viena no iespējām ir izmantot virtuālo mašīnu un reģistrēt skripta laika zīmogus, kas periodiski darbojas Cron darbā, iekļaujot kaut ko līdzīgu komandai “datums” un novirzot izvadi uz teksta failu. Tomēr labāks risinājums ir izmantot vienu no daudzajiem tiešsaistes Cron darba testēšanas pakalpojumiem, kas pieejami tīmeklī. Es iesaku dot Cron testera vietni pieejamu šeit mēģināt.
Secinājums
Cron darbu vadīšana ir lielisks veids, kā automatizēt atkārtotus uzdevumus, īpaši serveros. Šis rīks ir ārkārtīgi spēcīgs un pielāgojams. Tomēr ir svarīgi pārliecināties, vai plānotāja definīcija darbojas pareizi, it īpaši, ja ir uzdevumam kritiski uzdevumi.