Login



XLAB baneris
Mūsu draugi

http://lata.org.lv/

http://linux.edu.lv/

http://atveries.lv/

http://www.linuxinfo.lv/

Nedaudz par cron

Cron ir UNIX līdzīgo sistēmu uzdevumu plānošanas (job scheduler) serviss, ar kura palīdzību ar konkrēta lietotāja tiesībām var izpildīt komandas vai skriptus. Ar šo servisu ir iespējams veikt ne tikai sistēmas administrēšanu un uzturēšanu, bet arī daudzus citus uzdevumus, piemēram, lejuplādēt e-pastu no attālināta servera vai veikt savu datu rezerves kopēšanu.

Pamata konfigurācijas fails ir atrodams zem ceļa /etc/crontab. Manā KUbuntu distributīvā noklusējuma /etc/crontab fails izskatās apmēram šādi:

crontab

Ja Jūs tiešām neesat pārliecināti par savu rīcību, ieteicams neaiztikt nekomentētas rindas, kuras pēc noklusējuma atrodas dotajā failā – tās ir nepieciešamas normālai sistēmas darbībai. Komentētās rindas sākas ar resti ( # ), un cron tās nelasa. Tātad, ar resti sākumā var viegli atspējot konkrētus cron uzdevumus. Savus cron uzdevumus ieteicams pievienot faila beigās, un par tiem es tūlīt pastāstīšu. :)

Cron uzdevums ir rinda augstāk minētajā failā, kura sastāv no sekojošām daļām, kuras ir atdalītas ar atstarpi:

* * * * * lietotājs izpildāma_komanda
| | | | | |
| | | | | --- Lietotājs, ar kura tiesībām tiks izpildīts uzdevums
| | | | ----- Nedēļas diena (0 - 7) (Svētdiena = 0 vai = 7)
| | | ------- Mēnesis (1 - 12)
| | --------- Diena (1 - 31)
| ----------- Stunda (0 - 23)
------------- Minūte (0 - 59)

Ja, piemēram, minūtes vietā ir zvaigznīte ( * ), tas nozīmē, ka uzdevums tiks izpildīts katru minūti. Katrā daļā var pievienot arī vairākus skaitļus, piemēram, ja gribam, lai komanda izpildās gan 1., gan 2. un 5. datumā, tad datuma daļā rakstam 1,2,5. Bet, ja ievadīsim 1-7, tas nozīmē, ka uzdevums izpildīsies no 1. datuma līdz 7. Viss iepriekšējais attiecas arī uz pārējām daļām, kuras raksturo izpildīšanas periodu.

Pāris piemēri:

0 14 * * * root apt-get update (komanda apt-get update tiks izpildīta ar root tiesībām katru nedēļas dienu un katru mēneša dienu katrā mēnesī 14:00)

* * * * 6,7 tintix /home/tintix/script.sh (skripts /home/tintix/script.sh tiks izpildīts ar lietotāja tintix tiesībām sestdienās un svētdienās jebkurā datumā katra mēneša katrā stundā ik pēc minūtes)

Iespējams arī nenorādīt cron uzdevuma rindas pirmās piecas daļas, tās aizvietojot ar vienu atslēgas vārdu.

Atslēgas vārds Apraksts Atbilst
@reboot Palaiž vienu reizi sāknēšanas laikā.
@yearly Palaiž reizi gadā 0 0 1 1 *
@annually (tas pats kā @yearly) 0 0 1 1 *
@monthly Palaiž reizi mēnesī 0 0 1 * *
@weekly Palaiž reizi nedēļā 0 0 * * 0
@daily Palaiž reizi dienā 0 0 * * *
@midnight (tas pats kā @daily) 0 0 * * *
@hourly Palaiž reizi stundā 0 * * * *

Pēc /etc/crontab rediģēšanas ieteicams pārlādēt cron konfigurāciju, terminālī ar administratora tiesībām palaižot /etc/init.d/cron reload.

Ja periodā, kad dators ir izslēgts vai cron serviss nedarbojas, bija ieplānots izpildīt kādu uzdevumu, tad pēc datora ieslēgšanas vai cron servisa palaišanas tas netiks izpildīts jeb izlaists. Ir cron līdzīga programma anacron, kura izpilda uzdevumu arī vēlāk, kad tas tika izlaists (piemēram, izslēgta datora dēļ).

Neaizmirsti uzrakstīt savu viedokli!

Jums nepieciešams ielogoties, lai pievienotu komentāru.


RSS barotne
Seko līdzi Twitter’ī