11 Cron Scheduling Uzdevuma piemēri Linux


Šajā rakstā mēs pārskatīsim un redzēsim, kā mēs varam regulāri ieplānot un izpildīt uzdevumus fonā ar regulāriem starplaikiem, izmantojot komandu Crontab. Manuāla biežas darba veikšana ir biedējošs uzdevums sistēmas administratoram. Šādu procesu var plānot un palaist automātiski fonā bez cilvēka iejaukšanās, izmantojot cron dēmonu Linux vai Unix līdzīgā operētājsistēmā.

Piemēram, jūs varat automatizēt procesu, piemēram, dublēšanu, ieplānot atjauninājumus un failu sinhronizāciju un daudz ko citu. Krona ir dēmons grafika uzdevumu izpildei. Krona pamostas katru minūti un pārbauda grafika uzdevumus crontable. Crontab (CRON TABle) ir tabula, kurā mēs varam ieplānot šāda veida atkārtotus uzdevumus.

Padomi. Katram lietotājam var būt savs kronšteins, lai izveidotu, modificētu un dzēstu uzdevumus. Pēc noklusējuma cron ir iespējots lietotājiem, tomēr mēs varam ierobežot ieraksta pievienošanu failā /etc/cron.deny.

Crontab fails sastāv no komandas katrā rindā, un tajā faktiski ir seši lauki, kas atdalīti no atstarpes vai cilnes. Sākuma pieci lauki norāda laiku uzdevumu izpildei, un pēdējais lauks ir paredzēts komandai.

  1. Minūte (turiet vērtības starp 0–59)
  2. Stunda (aizturēšanas vērtības ir no 0 līdz 23)
  3. Mēneša diena (turiet vērtības starp 1–31)
  4. Gada mēnesis (aizturiet vērtības no 1 līdz 12 vai no janvāra līdz decembrim, varat izmantot katra mēneša nosaukuma trīs pirmos burtus, t.i., janvāri vai jūniju.)
  5. Nedēļas diena (turiet vērtības starp 0–6 vai Sv – Sest, šeit varat arī izmantot katras dienas pirmos trīs burtus, t.i., svētdienu vai trešdienu)
  6. komanda

Uzskaitiet vai pārvaldiet uzdevumu ar crontab komandu ar -l pašreizējam lietotājam.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

Lai rediģētu crontab ierakstu, izmantojiet opciju -e, kā parādīts zemāk. Zemāk esošajā piemērā tiks atvērti grafika darbi VI redaktorā. Veiciet nepieciešamās izmaiņas un pārtrauciet nospiest taustiņus: wq, kas automātiski saglabā iestatījumu.

# crontab -e

Lai uzskaitītu plānotus konkrēta lietotāja darbus, kurus sauc par tecmint, izmantojot opcijas -u (Lietotājs) un -l (Saraksts).

# crontab -u tecmint -l

no crontab for tecmint

Piezīme: Tikai root lietotājam ir pilnīgas privilēģijas, lai citi lietotāji redzētu ierakstu. Parasts lietotājs to nevar skatīt citiem.

Uzmanību: Crontab ar -r parametrs noņems visus ieplānotos darbus bez crontab apstiprinājuma. Pirms lietotāja crontab dzēšanas izmantojiet opciju -i.

# crontab -r

crontab ar -i opcija liks jums saņemt apstiprinājumu no lietotāja pirms lietotāja crontab dzēšanas.

# crontab -i -r

crontab: really delete root's crontab?

  1. Asterik (*) - atbilst visām lauka vērtībām vai jebkurai iespējamai vērtībai.
  2. defise (-) - lai noteiktu diapazonu.
  3. Slīpsvītra (/) - 1. lauks/10, kas nozīmē ik pēc desmit minūtēm vai diapazona pieaugumu.
  4. Koma (,) - lai atdalītu vienumus.

Sistēmas administrators var izmantot iepriekš definētu cron direktoriju, kā parādīts zemāk.

  1. /etc/cron.d
  2. /etc/cron.daily
  3. /etc/cron.hourly
  4. /etc/cron.mēnesī
  5. /etc/cron.weekly

Tālāk norādītie darbi katru dienu pulksten 12:30 izdzēš tukšos failus un direktoriju no/tmp. Lai veiktu crontab komandu, jums jāpiemin lietotāja vārds. Zemāk piemērā saknes lietotājs veic cron darbu.

# crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

Ja vēlaties izmantot to pašu, pieci cron komandas lauki ir jāaizstāj ar atslēgvārdu.

Zemāk piemērā komandas1 un komanda2 darbojas katru dienu.

# crontab -e

@daily <command1> && <command2>

Pēc noklusējuma cron nosūta pastu uz lietotāja kontu, izpildot cronjob. Ja vēlaties to atspējot, pievienojiet savu cron darbu, kas līdzīgs zemāk redzamajam piemēram. Izmantojot opciju>/dev/null 2> & 1 faila beigās, visi cron rezultātu izvadījumi tiks novirzīti zem/dev/null.

 crontab -e
* * * * * >/dev/null 2>&1

secinājums: Uzdevumu automatizācija var palīdzēt mums labāk un bez kļūdām izpildīt uzdevumu. Lai iegūtu papildinformāciju, varat skatīt crontab rokasgrāmatas lapu, ierakstot komandu “man crontab” savā terminālā.