11 primerov opravil za načrtovanje kronov v Linuxu


V tem članku bomo pregledali in videli, kako lahko z ukazom Crontab v rednih časovnih presledkih samodejno razporejamo in izvajamo naloge v ozadju. Ročno obravnavanje pogostih opravil je za skrbnika sistema zastrašujoča naloga. Tak postopek je mogoče razporediti in samodejno zagnati v ozadju, ne da bi človek posredoval z uporabo cron daemon v operacijskem sistemu Linux ali Unixu.

Na primer, lahko avtomatizirate postopek, kot je varnostno kopiranje, razpored posodobitev in sinhronizacija datotek ter še veliko več. Cron je demon za izvajanje nalog urnika. Cron se zbudi vsako minuto in preverja razpored opravil v crontable. Crontab (CRON TABle) je tabela, v kateri lahko načrtujemo tovrstne ponavljajoče se naloge.

Namigi: Vsak uporabnik ima lahko svoj crontab za ustvarjanje, spreminjanje in brisanje opravil. Privzeto je cron omogočen uporabnikom, vendar lahko omejimo dodajanje vnosa v datoteko /etc/cron.deny.

Datoteka Crontab je sestavljena iz ukaza na vrstico in ima šest polj, ločenih med presledkom ali jezičkom. Začetnih pet polj predstavlja čas za izvajanje nalog, zadnje polje pa je za ukaz.

  1. minuta (zadržite vrednosti med 0-59)
  2. Ura (zadržite vrednosti med 0 in 23)
  3. Dan v mesecu (vrednosti so med 1-31)
  4. Mesec v letu (zadržite vrednosti med 1 in 12 ali januar-decembrom, lahko uporabite prve tri črke imena vsakega meseca, tj. januar ali junij.)
  5. Dan v tednu (zadržite vrednosti med 0-6 ali sonce-sobo, tukaj lahko uporabite tudi prve tri črke imena vsakega dne, tj. sonce ali sreda.)
  6. Ukaz

Seznam ali upravljanje naloge z ukazom crontab z možnostjo -l za trenutnega uporabnika.

# crontab -l

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

Če želite urediti vnos crontab, uporabite možnost -e, kot je prikazano spodaj. V spodnjem primeru se bodo odprla opravila urnika v urejevalniku VI. Izvedite potrebne spremembe in nehajte pritiskati: tipke wq, ki samodejno shranijo nastavitev.

# crontab -e

Za seznam načrtovanih opravil določenega uporabnika, imenovanega tecmint, uporabite možnosti kot -u (Uporabnik) in -l (Seznam).

# crontab -u tecmint -l

no crontab for tecmint

Opomba: Samo root uporabnik ima popolne privilegije za ogled vnosa crontab drugih uporabnikov. Običajni uporabnik si tega ne more ogledati drugih.

Pozor: Crontab s parametrom -r bo odstranil celotna načrtovana opravila brez potrditve s strani crontab. Pred brisanjem uporabnikovega crontaba uporabite možnost -i.

# crontab -r

crontab z možnostjo -i vas bo pozval, da potrdite uporabnika, preden izbrišete uporabnikov crontab.

# crontab -i -r

crontab: really delete root's crontab?

  1. Asterik (*) - Povežite vse vrednosti v polju ali katero koli možno vrednost.
  2. Vezaj (-) - Za določitev obsega.
  3. Poševnica (/) - 1. polje/10, kar pomeni vsakih deset minut ali povečanje obsega.
  4. Vejica (,) - za ločevanje elementov.

Sistemski skrbnik lahko uporablja vnaprej določen imenik cron, kot je prikazano spodaj.

  1. /etc/cron.d
  2. /etc/cron.daily
  3. /etc/cron.hourly
  4. /etc/cron.monthly
  5. /etc/cron.weekly

Spodnja opravila vsak dan ob 12.30 izbrišejo prazne datoteke in imenik iz/tmp. Za izvajanje ukaza crontab morate omeniti uporabniško ime. V spodnjem primeru korenski uporabnik opravlja opravilo cron.

# crontab -e

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

Če želite uporabiti isto, morate pet polj ukaza cron nadomestiti s ključno besedo.

V spodnjem primeru se ukaz1 in ukaz2 izvajata vsak dan.

# crontab -e

@daily <command1> && <command2>

Privzeto cron pošlje e-pošto na uporabniški račun, ki izvaja cronjob. Če ga želite onemogočiti, dodajte opravilo cron, podobno spodnjemu primeru. Če uporabite>/dev/null 2> & 1 na koncu datoteke, boste preusmerili vse izide rezultatov cron pod/dev/null.

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

zaključek: Avtomatizacija nalog nam lahko pomaga, da nalogo opravljamo bolje, brez napak in učinkovito. Za več informacij lahko na strani priročnika crontab vnesete ukaz 'man crontab' v svoj terminal.