Folosind comanda cron și comanda crontab

Folosind comanda cron și comanda crontab

Numele directoarelor și fișierelor sunt descrise pentru Linux (RedHat). Pentru alte sisteme de operare, numele pot diferi, însă principiul cron este exact același.







Cron este un program care efectuează sarcini la un program. Vă permite să executați lucrări în mod repetat. Ie Sarcina poate fi lansată la un moment dat sau după o anumită perioadă de timp. Formatul și valorile câmpurilor pentru fișierele crontab ale utilizatorilor vor fi listate la sfârșitul articolului.

Când sistemul pornește, daemonul cron pornește și verifică coada de așteptare la job și operațiile de utilizator din fișierele crontab. Când porniți, Cron Daemon verifică mai întâi directorul / var / spool / cron pentru prezența fișierului crontab, fișierele crontab sunt nume de utilizator care corespund numelor de utilizatori din / etc / passwd Fiecare utilizator poate avea doar un singur fișier crontab, înregistrări din fișier poate fi de mai multe.

Cu alte cuvinte, fișierele crontab conțin instrucțiuni pentru daemonul cron, care va executa lucrările descrise în fișierul crontab. Toate fișierele crontab din directorul / var / spool / cron încărcate în memorie, în același timp, ele sunt descărcate fișiere din /etc/cron.d Ulterior, cron daemon încarcă conținutul fișierului / etc / crontab În setarea implicită, conținutul / etc / crontab arata ca acest lucru :

SHELL = / bin / bash
PATH = / sbin: / bin: / usr / sbin: / usr / bin
MAILTO = rădăcină
HOME = /
# run-piese
01 * * * * root-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 run-root parts /etc/cron.weekly
42 4 1 * * run-root parts /etc/cron.monthly

Informațiile despre fișier indică faptul că:
* conținutul directorului /etc/cron.hourly va fi lansat în fiecare oră în primul minut al orei.
* conținutul directorului /etc/cron.daily va fi lansat în fiecare zi în al doilea minut al celei de-a patra ore.
* conținutul directorului /etc/cron.weekly va fi lansat în fiecare duminică la ora 22 din ora 4.
* Conținutul directorului /etc/cron.monthly va fi lansat în fiecare primă zi a lunii, la 42 minute de la ora 4.

SHELL = / bin / bash înseamnă a folosi comenzile / bin / bash. dacă nu este specificată nici o variabilă, valoarea va fi luată din / etc / passwd pentru utilizatorul care este proprietarul fișierului.

HOME = / directorul rădăcină pentru utilizator (opțional) Dacă aveți nevoie de acces la proprietăți speciale ale interpretului, valorile variabilelor SHELL și HOME pot fi schimbate, indiferent de ceea ce este scris în / etc / passwd

MAILTO = root înseamnă cine va trimite un mesaj despre rezultatul comenzilor.

Tot conținutul acestor directoare vor fi lansate cu permisiuni de root de utilizator și fișierele trebuie să aibă permisiuni la „executare“ (cu privire la drepturile de acces pentru a citi articolele viewtopic.php? T = 331) Prin urmare, este necesar să se asigure înainte de a pune fișierele într-una din aceste directoare acest scenariu Nu dăunează sistemului.







După cron daemon rulează și citește conținutul fișierului crontab, acesta este inactiv, trezesc în fiecare minut și verificarea dacă noul fișier nu este dacă începutul oricărei echipe în acest moment, sau nu sa prezentat crontab trebuie să fie tratate. Demo cron detectează modificările în timpul de modificare a fișierelor sau a directoarelor, această proprietate elimină necesitatea de a reporni daemonul.

După cum sa menționat mai sus, locația fișierelor pentru cron în directoare
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

este disponibil numai pentru utilizatorul rădăcină, pentru a utiliza fișierele crontab de către utilizatori, trebuie să utilizați comanda crontab. Utilizați această comandă pentru a crea, a modifica și a adăuga un fișier pentru daemonul cron.

Luați în considerare un exemplu de creare a unui fișier crontab pentru utilizatorul utilizatorului, directorul home / home / user

Sarcină: rulați fiecare minut fișierul / home / user / mail care va trimite poștă

# conținutul fișierului de e-mail (fișierul trebuie să aibă dreptul de a rula! de exemplu -rwxr-xr-x)
#! / bin / bash
mizerie = "test cron"
echo "$ mess" | mutt -s "subj" -m aplicație / octet-stream [email protected]

1. Creați un fișier / home / user / test temporar conținutul fișierului de testare este:


2. Rulați comanda terminală crontab / home / user / test

Asta e tot. După aceea, în directorul / var / spool / cron va fi creat un fișier "user" cu ceva asemănător

iar fișierul / home / user / mail va fi rulat de către daemonul cron în fiecare minut.

Accesul la directorul / var / spool / cron pentru utilizatorul neavizat este închis, pentru a vedea dacă utilizatorul are un fișier crontab, doar tastați crontab -l, dacă fișierul există, conținutul acestuia va fi afișat.

Pentru a șterge un fișier, folosiți comanda crontab -r

Pentru a edita crontab -e

Pentru a gestiona fișierele crontab, utilizatorul "root" folosește sintaxa:

-------------------------
fișierul crontab -u user_name - crează un fișier crontab din fișierul "file" pentru utilizatorul "user_name"
-------------------------
-u înseamnă a cărui crontab va fi procesată, dacă opțiunea nu este setată, atunci crontabul utilizatorului care execută comanda crontab va fi procesat.

Format și valorile câmpului

Fiecare comandă din fișierul crontab al utilizatorului are o linie și conține șase câmpuri. Fisierele crontab personalizate sunt localizate in / var / spool / cron

Valorile valide sunt:
minut de la 0 la 59 de ore
oră de la 0 la 23
zi_month 1 la 31
lună de la 1 la 12 (puteți avea trei litere de la numele lunii, registrul nu contează de la jan la dec)
day_days de la 0 la 6 (0 această duminică, puteți scrie de la soare la sat)

Fiecare câmp de dată și oră poate fi indicat de simbolul *, va corespunde oricărei valori posibile. Pentru aceste câmpuri, puteți specifica intervale de valori separate printr-o cratimă, de exemplu:

* * / 2 * * sat echo "HELLO" - Imprimarea HELLO în fiecare oră orar, în fiecare sâmbătă

echivalentă cu exemplul precedent (listă)

* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo "HELLO" - Imprimarea HELLO în fiecare eveniment orar, în fiecare sâmbătă

la fel cu o gamă

* 0-23 / 2 * * sat echo "HELLO" - Imprimarea HELLO în fiecare eveniment orar, în fiecare sâmbătă

Pentru a depana o lucrare cron, puteți redirecționa rezultatul într-un fișier

0-59 * * * * / home / utilizator / mail 2> /tmp/tmp.cron

Dacă apar erori la rularea comenzii / home / user / mail, acestea vor fi scrise la /tmp/tmp.cron și puteți afla întotdeauna motivul. Dacă ieșirea este redirecționată către un fișier, mesajul către utilizatorul specificat în variabila MAILTO nu va fi trimis.

Vizualizați informații despre toate comenzile derulate de daemonul cron din directorul / var / log numit cron, cron1 și așa mai departe.

Fișierul / var / log / cron conține timpul de începere a tuturor operațiilor cron pentru ziua precedentă

Mar 29 04:03:00 rst CROND [4434]: (utilizator) CMD (/ home / user / mail)
Mar 29 04:03:59 rst CROND [4493]: (utilizator) CMD (/ home / user / mail)
Mar 29 04:05:00 rst CROND [4507]: (utilizator) CMD (/ home / user / mail)
Mar 29 04:06:00 ron CROND [4549]: (utilizator) CMD (/ home / user / mail)

Restul fișierelor cron1, cron2 conțin informații similare, dar mai vechi decât cron

Asta este practic tot ce trebuie să știți pentru utilizarea cron și crontab.







Articole similare

Trimiteți-le prietenilor: