Cum să editați fișierul Linux Crontab pentru a programa locurile de muncă

Introducere

Există un daemon în Linux numit cron, care este folosit pentru a rula procesele la intervale regulate.

Modul în care se face acest lucru este de a verifica anumite foldere de pe sistemul dvs. pentru ca scripturile să ruleze. De exemplu, există un director numit /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly și /etc/cron.monthly. Există, de asemenea, un fișier numit / etc / crontab.

În mod implicit, puteți plasa script-uri în dosarele relevante pentru a le face să ruleze intervale regulate.

De exemplu, deschideți o fereastră terminală (apăsând CTRL, ALT și T) și executați următoarea comandă ls :

ls / etc / cron *

Veți vedea lista de programe sau scripturi care se execută orar, zilnic, săptămânal și lunar.

Problema cu aceste dosare este că acestea sunt puțin vagi. De exemplu, zilnic înseamnă că scriptul va fi difuzat o dată pe zi, dar nu aveți control asupra timpului în care scriptul va fi rulat în acea zi.

Aici intră fișierul crontab.

Prin editarea fișierului crontab puteți obține un script sau un program pentru a rula la data și ora exactă pe care doriți să le execute. De exemplu, poate doriți să vă copiați fișierele în fiecare seară la ora 18:00.

Permisiuni

Comanda crontab cere ca un utilizator să aibă permisiuni de editare a unui fișier crontab. Există în principiu două fișiere care sunt utilizate pentru a gestiona permisiunile crontab:

Dacă fișierul /etc/cron.allow există, atunci utilizatorul care dorește să editeze fișierul crontab trebuie să fie în acel fișier. Dacă fișierul cron.allow nu există, dar există un fișier /etc/cron.deny, atunci utilizatorul nu trebuie să existe în acel fișier.

Dacă există ambele fișiere, atunci /etc/cron.allow suprascrie fișierul /etc/cron.deny.

Dacă nu există niciun fișier, depinde de configurația sistemului dacă un utilizator poate edita crontabul.

Utilizatorul rădăcină poate modifica întotdeauna fișierul crontab. Puteți utiliza comanda su pentru a comuta la utilizatorul rădăcină sau la comanda sudo pentru a rula comanda crontab.

Editarea fișierului Crontab

Fiecare utilizator care are permisiuni poate crea propriul fișier crontab. Comanda cron caută, de fapt, existența mai multor fișiere crontab și rulează prin toate acestea.

Pentru a verifica dacă aveți un fișier crontab executați următoarea comandă:

crontab -l

Dacă nu aveți un fișier crontab, va apărea mesajul "no crontab for ", altfel fișierul dvs. crontab va fi afișat (această funcție diferă de la sistem la sistem, uneori nu afișează nimic și alteori se afișează " nu editați acest fișier ").

Pentru a crea sau edita un fișier crontab executați următoarea comandă:

crontab -e

În mod implicit, dacă nu este selectat un editor implicit, vi se va cere să selectați un editor implicit de utilizat. Personal, îmi place să folosesc nano , deoarece este destul de simplu de folosit și rulează de la terminal.

Fișierul care se deschide are o mulțime de informații, dar partea cheie este exemplul chiar înainte de sfârșitul secțiunii de comentarii (comentariile sunt notate cu linii care încep cu #).

# comanda mh dom mon dow

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

Există 6 informații care se potrivesc fiecărei linii a fișierului crontab:

Pentru fiecare element (cu excepția comenzii) puteți specifica un caracter cu machetă. Uită-te la următorul exemplu crontab linie:

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

Ceea ce spune comanda de mai sus este la 30 de minute, 18 ore și orice zi, lună și zi a săptămânii execută o comandă pentru a zip și a întinde directorul de domiciliu în dosarul / var / backups.

Pentru a obține o comandă care să ruleze la 30 de minute în fiecare oră, pot rula următoarea comandă:

30 * * * * comandă

Pentru a obține o comandă care să ruleze la fiecare minut după ora 18, pot rula următoarea comandă:

* 18 * * * comanda

Prin urmare, trebuie să fiți atenți la configurarea comenzilor dvs. crontab.

De exemplu:

* * * 1 * comandă

Comanda de mai sus se desfășura în fiecare minut din fiecare oră din fiecare zi a fiecărei săptămâni din ianuarie. Mă îndoiesc că asta vrei.

Pentru a rula o comanda la ora 5 am pe 1 ianuarie, veti face la urmatoarea comanda fisierul crontab:

0 5 1 1 * comandă

Cum să eliminați un fișier Crontab

De cele mai multe ori nu veți dori să eliminați fișierul crontab, dar este posibil să doriți să eliminați câteva rânduri din fișierul crontab.

Cu toate acestea, dacă doriți să eliminați fișierul crontab al utilizatorului, executați următoarea comandă:

crontab -r

O modalitate mai sigură de a face acest lucru este să executați următoarea comandă:

crontab -i

Aceasta pune întrebarea "sunteți sigur?" înainte de a elimina fișierul crontab.