Kako urediti datoteko Linux Crontab za razporejanje delovnih mest

Uvod

Obstaja demon v Linuxu, ki se imenuje cron, ki se uporablja za poganjanje procesov v rednih intervalih.

Način, kako to naredi, je, da preverite določene mape v vašem sistemu za zagon skript. Na primer obstaja mapa, imenovana /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly in /etc/cron.monthly. Obstaja tudi datoteka, imenovana / etc / crontab.

Privzeto lahko preprosto postavite skripte v ustrezne mape, da jih lahko redno izvajate.

Na primer odprite okno terminala (s pritiskom na CTRL, ALT in T) in zaženite naslednji ukaz ls :

ls / etc / cron *

Prikazali boste seznam programov ali skriptov, ki se izvajajo urno, dnevno, tedensko in mesečno.

Težave s temi mapami so, da so malo nejasne. Na primer vsak dan pomeni, da se bo skript izvajal enkrat dnevno, vendar nimate nadzora nad trenutkom, v katerem se bo skript izvajal v tem dnevu.

Tukaj prihaja datoteka crontab.

Z urejanjem datoteke crontab lahko dobite skript ali program, ki ga želite izvajati na točen datum in čas, ki ga želite zagnati. Na primer, morda želite varnostno kopirati datoteke vsako noč ob 18.00.

Dovoljenja

Ukaz crontab zahteva, da ima uporabnik dovoljenja za urejanje datoteke crontab. V bistvu obstajata dve datoteki, ki se uporabljajo za upravljanje dovoljenj crontab:

Če datoteka /etc/cron.allow obstaja, mora biti uporabnik, ki želi urediti datoteko crontab, v tej datoteki. Če datoteka cron.allow ne obstaja, vendar obstaja datoteka /etc/cron.deny, potem uporabnik v tej datoteki ne sme obstajati.

Če obstajata obe datoteki, potem /etc/cron.allow prekliče datoteko /etc/cron.deny.

Če ni nobene datoteke, je odvisno od konfiguracije sistema, ali lahko uporabnik ustvari crontab.

Uporabnik root lahko vedno uredi datoteko crontab. Z ukazom su lahko preklopite na root uporabnika ali ukaz sudo za zagon ukaza crontab.

Urejanje datoteke Crontab

Vsak uporabnik, ki ima dovoljenja, lahko ustvari svojo datoteko crontab. Ukaz cron v bistvu išče obstoj več crontab datotek in teče skozi vse.

Če želite preveriti, ali imate datoteko crontab, zaženite ta ukaz:

crontab -l

Če nimate datoteke crontab, se bo pojavilo sporočilo »ni crontab za «, sicer se prikaže vaša datoteka crontab (ta funkcija se razlikuje od sistema do sistema, včasih sploh ne prikaže ničesar in v drugih primerih, ki jih prikaže, « ne uredite te datoteke ").

Če želite ustvariti ali urediti datoteko crontab, zaženite naslednji ukaz:

crontab-e

Privzeto, če ni privzetega izbranega urejevalnika, boste morali izbrati privzeti urejevalnik, ki ga želite uporabiti. Osebno rad uporabljam nano, saj je dokaj enostaven za uporabo in teče od terminala.

Datoteka, ki se odpre, ima veliko informacij, ključni del pa je primer tik pred koncem razdelka »Komentarji« (komentarje označujejo vrstice, ki se začnejo z #).

# mh dom mon dow ukaz

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Na vsaki vrstici datoteke crontab je na voljo 6 podatkov:

Za vsak element (razen ukaza) lahko določite nadomestni znak. Oglejte si naslednji primer crontab linije:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Kaj zgornji ukaz pravi je 30 minut, 18 ur in vsak dan, mesec in dan v tednu zaženite ukaz za zip in tar domači imenik v / var / backups mapo.

Da bi dobili ukaz, ki naj teče po 30 minutah vsake ure, lahko zaženem naslednji ukaz:

30 * * * * ukaz

Da bi dobili ukaz za zagon vsako minuto ob 18h, lahko zaženem naslednji ukaz:

* 18 * * * ukaz

Zato morate biti previdni pri nastavljanju ukazov crontab.

Na primer:

* * * 1 * ukaz

Zgornji ukaz bi potekal vsako minuto vsake ure vsak dan vsakega tedna v januarju. Dvomim, da je to tisto, kar želite.

Če želite 1. januarja narediti ukaz ob 5 uri, bi morali v datoteko crontab narediti naslednji ukaz:

0 5 1 1 * ukaz

Kako odstraniti datoteko Crontab

Večino časa ne želite odstraniti datoteke crontab, vendar boste morda želeli odstraniti nekaj vrstic iz datoteke crontab.

Če pa želite odstraniti datoteko crontab uporabnika, zaženite naslednji ukaz:

crontab -r

Varnejši način za to je zagon naslednjega ukaza:

crontab -i

To postavlja vprašanje "ste prepričani?" preden odstranite datoteko crontab.