Programarea sarcinilor periodice folosind Cron în Linux
cron
este un program Linux care este folosit pentru a programa o comandă sau un script care urmează să fie executat la un moment ulterior în timp. Poate fi folosit și pentru a programa comenzi și scripturi care rulează periodic. Programele programate folosind cron sunt denumite în mod obișnuit ca Cron Jobs. Utilizarea sa principală este pentru sarcini de administrare a sistemului, cum ar fi backup-uri regulate, actualizări regulate de software și alte sarcini de întreținere similare.
Introducere
cron
rulează ca un daemon în Linux, adică ca proces de fundal. Permite utilizatorilor să programeze joburi direct cu comanda crontab, care deschide un fișier de configurare numit Cron File într-un editor. Fișierele Cron separate sunt create pentru fiecare utilizator.
Crearea unui fișier Cron și a sintaxei de bază
The crontab
comanda poate fi executată cu -e
flag pentru a edita un fișier Cron existent. Dacă fișierul nu există deja, acesta va fi creat. Dacă utilizatorul apelează comanda pentru prima dată și dacă există mai multe editoare de fișiere instalate pe sistemul Linux, comanda va cere utilizatorului să aleagă un editor implicit dintr-o listă de editori.
După alegerea editorului, va fi creat și deschis un fișier cron pentru utilizator. Acum puteți specifica locuri de muncă în fișier.
Sintaxa generală pentru specificarea unui job Cron este:
Practic, cel va rula la „minutul” (0-59), „ora” (0-23), „ziua lunii” (1-31), luna (1-12), ziua săptămânii, (0-7,) specificate Pentru duminică, poate fi folosit fie 0, fie 7) în Cron Job. Pentru a simplifica, să luăm un exemplu:
1 2 3 4 5 echo „Bună ziua”
Aceasta înseamnă comanda ecou "Bună ziua"
va rula în fiecare a cincea zi a săptămânii (vineri) și în fiecare a 3-a zi a lunii, în fiecare a 4-a lună a anului (aprilie), la ora 02:01 (ora a 2-a primul minut).
Dacă aceeași comandă urmează să fie rulată în fiecare zi la 02:01, sintaxa va arăta astfel:
1 2 * * * ecou „Bună ziua”
The *
semnifică „întotdeauna” sau „pentru toți”, de ex. pentru toate lunile, pentru toate zilele săptămânii etc.
Operatorul de comandă (,
) poate fi folosit pentru a introduce o listă de valori atunci când sarcina trebuie repetată. De exemplu:
0 2,3,4 * * * ecou „Bună ziua”
Acesta va rula programul la 2:00, 3:00 și 4:00, în fiecare zi.
În mod similar, o cratima (-
) operator poate fi folosit pentru a specifica un interval pentru care sarcina se va repeta. De exemplu:
0-20 2 * * * ecou „Bună ziua”
Acest lucru va rula programul la 02:00, 02:01, 02:02 și așa mai departe până la 02:20.
În sfârșit, avem slash ( /
) operator. Acest operator este folosit pentru a specifica o valoare a intervalului în funcție de care sarcina va fi repetată. De exemplu. */15
în câmpul minutelor înseamnă că sarcina trebuie repetată la fiecare 15 minute. 2-10/2
în câmpul ore specifică că sarcina se va repeta între 2 AM și 10 AM după fiecare interval de 2 ore (2 AM, 4 AM, 6 AM, 8 AM, 10 AM).
*/15 2-10/2 * * * echo „Bună ziua”
După ce ați introdus în fișierul Cron, salvați fișierul și ieșiți din editor.
Ar trebui să vezi a „instalarea noului crontab” mesaj în terminal după salvarea și ieșirea din fișierul crontab.
Macro-uri
Anumite macrocomenzi sunt predefinite în Cron, care specifică unele intervale de timp solicitate în mod obișnuit, cum ar fi fiecare oră, în fiecare zi, în fiecare lună etc.
Pentru a rula o sarcină o dată pe zi la începutul zilei, adică la 00:00, utilizați macro @zilnic
. Aceasta este echivalentă cu 0 0 * * *
.
Puteți pune acest lucru în fișierul Cron în același mod cum este descris anterior.
Într-un mod similar, pot fi utilizate celelalte macrocomenzi, adică. @la oră
(minutul 0 din fiecare oră), @lunar
(00:00 a primei zile a lunii), @săptămânal
(00:00 din prima zi a săptămânii, @anual
(00:00 de la 1 ianuarie în fiecare an), @reboot
(la fiecare pornire a computerului).
Concluzie
În acest articol, am învățat cum să adăugați joburi Cron pentru execuție regulată în Linux. Utilizarea corectă a Cron Jobs este utilă chiar și pentru cele mai supărătoare sarcini manuale cu care se confruntă utilizatorul, de ex. ștergerea regulată a jurnalelor vechi, arhivarea tot felul de date la rece (date care sunt rar accesate), etc.