Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Cum să setați ora în cron. Ce este Cron? Câteva exemple utile pentru crearea de sarcini frecvent recurente

Cum să setați ora în cron. Ce este Cron? Câteva exemple utile pentru crearea de sarcini frecvent recurente

Cron (coroane), Crontab (crontab), Gestionar de sarcini- toți cei asociați cu „cladirea șantierului” au auzit de multe ori aceste nume. Deci, ce este Cron? Cum să lucrezi cu el? De ce aveți nevoie de Cron și cum să-l configurați corect? Vom analiza toate aceste întrebări astăzi.

Primul lucru pe care vreau să-l remarc imediat: Cron, Crontab, Gestionar de sarcini- e tot la fel, nu te jena de varietatea numelor.

În practica oricărui web-master, va apărea invariabil nevoia de a lansa orice sarcini într-un program. Acestea. Doar prescrieți comanda în care aveți nevoie pentru a efectua o sarcină regleaza ora, si asta e. Apoi totul se întâmplă fără participarea ta - automat și ceea ce este cel mai plăcut la momentul de care ai nevoie.

De exemplu, trebuie să trimiteți periodic notificări partenerilor pe e-mail... Sau doriți să configurați salutări sau mementouri automate. Sau aveți un director de site-uri și doriți ca scriptul directorului să verifice la o anumită frecvență backlink-uri etc. Toate aceste sarcini pot fi automatizate cu ușurință, încredințându-le lui Cron sau, după cum se spune - Planificator de sarcini... Și există scripturi în care pentru munca normala Coroana este o necesitate.

Aproape toate găzduirile moderne oferă o funcție gata făcută Planificator de sarcini... Dacă nu există o astfel de funcție pe Gazduire, atunci este mai bine să nu contactați o astfel de companie de Gazduire. Cron nu mai este un lux in aceste zile, iar daca Hosting-ul nu ofera un task scheduler in pachetul de servicii, mai bine cauti o alta companie, cu siguranta nu vor mai exista alte functii importante.

Deci hai să trecem peste tot actiuni practice conform setarii Cron folosind exemplul rusesc cPane l (panoul de control al site-ului) Compania de găzduire Hudson... De ce exact Hudson? Este simplu - site-ul meu locuiește aici și îmi place foarte mult această găzduire: pachet complet toate cele mai multe servicii posibile la un preț foarte rezonabil.

Deși setarea Planificator de sarcini se întâmplă cam la fel peste tot.

Mergem la panoul de control al site-ului, în în acest caz acesta este cPanel (sunt altele). Accesul vă este oferit imediat după cumpărare Gazduire, mergeți mai jos și găsiți o astfel de secțiune, Instrumente suplimentare:

Găsim în această secțiune Gestionar de sarciniși faceți clic pe el. Acest meniu este uneori numit Panoul Cron. Iată cum este caracterizat Cron:

„Task Scheduler vă permite să rulați comenzi în timp specificat fără participarea dumneavoastră. Acest lucru vă permite să automatizați sarcinile repetitive în mod regulat. Programatorul de sarcini este foarte flexibil și vă permite să automatizați execuția oricăror comenzi pe care doriți să le executați. De exemplu, puteți spune programatorului să elimine fișiere temporareîn fiecare săptămână, astfel încât să nu ocupe prea mult spațiu pe disc.”

Puteți alege dintre două opțiuni pentru controlul Cron:

Standard și Avansat (stil Unix), luați în considerare fiecare dintre ele.

Prima varianta. Faceți clic pe butonul Standard, se deschide fereastra de configurare a activității:

După cum puteți vedea, totul este foarte simplu aici. Trebuie doar să setați timpul de execuție al comenzii, specificând pentru aceasta în câmpurile corespunzătoare când va fi executată comanda, la ce oră: Minute, Ora, Zi, Lună, Zi a săptămânii... Și, desigur, scrieți comanda în sine pentru a rula în câmp: Comanda de rulare.

Valorile pot fi scrise fie manual (în câmpul din stânga), fie folosind lista derulantă (săgețile din dreapta).

Să vedem ce am scris aici. Și am scris următoarea sarcină: rulați comanda pentru execuție:
/ usr / bin / php /home/freeman/domains/public_html/cron/new_day.php
la fiecare 30 de minute, la fiecare 6 ore, în fiecare zi a lunii ianuarie, dacă cade luni.

După setarea sarcinii, faceți clic pe butonul Adăugați o lucrare Cron nouă.

Nu e clar ce ai scris? :) Să luăm în considerare a doua opțiune și apoi să explicăm mai detaliat. Revenim la pagina anterioară.

A doua varianta. Faceți clic pe butonul Avansat (stil Unix), se deschide fereastra de configurare a activității:

Această opțiune pentru setarea sarcinii la Kron, îmi place mai mult. Și deși se numește Advanced, în opinia mea este mai simplu și mai convenabil.

Aici, ca și în primul caz, trebuie să indicați când va fi executată comanda, indicăm și: Minute NS, Ora NS, Zi, Lună, Zi a săptămâniiși însăși sarcina pentru execuție în teren Comanda... După aceea, faceți clic pe butonul Adăugați Cronjob. Sarcina este stabilită. Pagina este în curs de actualizare:

Și puteți adăuga o nouă sarcină repetând din nou întreaga procedură. Puteți șterge sarcina făcând clic pe crucea opusă sarcinii din dreapta.

Mai este unul nu parametrul necesar, dar recomand să-l prescrii: este Adresa de e-mail... La această adresă va fi trimis un raport privind executarea comenzii. Câmpul este opțional, dar este mai bine să introduceți adresa pentru a fi la curent cu problema, dacă ceva nu merge bine, Cron vă va informa despre asta într-o scrisoare, iar dacă scrisoarea este goală, atunci totul este OK!

Ce am scris aici? Rulați comanda la 11 minute, la fiecare a 2-a oră, în fiecare zi, în fiecare lună, în 1-a, 3-a, 5-a, 7-a zi a săptămânii.

În caseta de selecție: Minute specificați minutul (sau minutele) în care se va rula sarcina, în câmp Ora specificați ora (sau orele) în care va fi executată sarcina, precum și ziua (zile) și luna (lunile), în fiecare câmp puteți specifica ca timpul exact asa este si intervalul.

De exemplu, puteți specifica nu doar 11 minute, ci 11-15 (interval), ceea ce înseamnă că sarcina va rula la fiecare 11, 12, 13, 14, 15 minute. Sau specificați minute specifice, de exemplu: 11, 14, 18 - aceasta înseamnă că sarcina se va rula la 11, 14 și 18 minute. Puteți folosi și semnul * (asterisc)- denotă fiecare. Daca pui * (asterisc)în câmpul Minute, sarcina va fi lansată în fiecare minut, i.e. de 60 de ori pe oră.

În fiecare câmp, puteți specifica atât o anumită oră, cât și un interval, precum și să utilizați asteriscuri.

Înregistrare */2 mijloace: la fiecare 2 ore... Toate aceste variații de înregistrare se aplică tuturor câmpurilor ( Minute NS, Ora NS, Zi, Lună, Zi a săptămânii) când specificați o sarcină către Cron. Înțelegi, pot exista milioane de opțiuni, rulează sarcina, cel puțin în fiecare minut pe tot parcursul anului. Desigur, o astfel de nevoie nu apare aproape niciodată, dar teoretic există o astfel de posibilitate.

Și, de asemenea, rețineți că unele Hostinguri impun restricții la lansarea Krona, de exemplu, nu mai mult de 3 - 10 ori pe oră. De ce? Este creată o încărcare destul de semnificativă pe server. Pentru încălcare, contul dvs. poate fi blocat.

Acum să ne dăm seama cum este completat câmpul Comanda de rulare(în prima opțiune) sau Command (în a doua opțiune).

Sarcina este stabilită după cum urmează.

În primul rând, specificați calea către PHP pe serverul dvs., pe serverul meu calea / usr / bin / php poate fi diferită pentru dvs., verificați cu administratorii de server, după calea către PHP puneți un spațiu și scrieți calea internă completă către fișierul care ar trebui să ruleze Cron... Să presupunem că am nevoie de Cron pentru a lansa fișierul mail.php, cunoscând calea internă către fișier, scriu următoarele:

public_html / cron / mail.php

acestea. în folderul rădăcină public_html, există un folder cron în care se află fișierul mail.php, iar întreaga comandă pentru a rula fișierul mail.php va arăta astfel:

/ usr / bin / php /public_html/cron/mail.php

Pe găzduire diferită, calea către PHP poate diferi și poate fi scrisă diferit, Dosarul rădăcină locația site-ului nu este întotdeauna cazul public_html deci daca nu exemplu concretînregistrarea misiunii către Kron, este mai bine să întrebați administratorul despre acest lucru, descriind ce doriți să obțineți în final. Bun

În sistemul de operare Unix este posibil să rulați programe de utilizator la un moment specificat. Pentru aceasta se folosește programul cron, care primește instrucțiuni de la utilizatori și, urmându-le, realizează orice sarcini conform scripturilor primite. Clienții noștri pot folosi această oportunitate pentru a îndeplini sarcini recurente.

Cum să configurați cron în contul personal (pentru tarifele Unix)

Deoarece nu toate programele PHP pot rula prin CLI SAPI fără modificare prealabilă, le puteți rula wget... De exemplu:

/ usr / local / bin / wget -O / dev / null -q http: //mysite.tld/cron.php? action = 123

Dacă scriptul folosește funcțiile cere, include, și conțin căi relative, apoi la începutul scriptului care se execută, utilizați apelul funcției chdir () care va seta directorul de lucru curent.

Cum să primiți mesaje de eroare de la programele cron run

Dacă întâmpinați erori în timpul executării unui program care rulează din cron, probabil că doriți să primiți mesaje despre aceste erori pentru a avea control complet asupra activității sarcinilor începute periodic. Pentru a face acest lucru, puneți următoarea linie la începutul scriptului cron:

MAILTO=adresă@domeniu.ru

Desigur, [email protected] trebuie înlocuită cu o adresă de e-mail reală la care vor trebui să fie livrate notificările. Dacă trebuie să primiți mesaje de eroare la mai multe adrese, specificați toate aceste adrese separate prin virgulă.

Vă rugăm să rețineți că cron va trimite prin poștă rezultatul scripturilor rulate. De exemplu, dacă scrieți un script care tipărește linia „Hello, world” și setați ca acesta să fie executat prin cron, veți primi un e-mail cu linia „Hello, world” de fiecare dată când cron rulează un astfel de script.

Pentru a evita acest lucru, de exemplu, atunci când nu aveți nevoie de textul ieșit de script, trebuie să adăugați caractere la sfârșitul liniei de script pentru cron

> / dev / null 2> & 1

Linia completă pentru cron va arăta astfel:

0 1 * * * / usr / local / bin / php -q $ HOME / script.php> / dev / null 2> & 1

Vă recomandăm să verificați corectitudinea sintaxei scripturilor pe care le-ați setat să fie executate prin cron. Scripturile pot conține o eroare, pot să nu funcționeze la fel atunci când sunt rulate printr-un server web și prin cron și așa mai departe. Pentru a vă asigura că scriptul va funcționa corect prin cron, mai întâi verificați-l cu o astfel de comandă în shell unix:

/ usr / local / bin / php -l script.php

Dacă nu există erori în script, veți vedea mesajul „No syntax errors detected in script.php”.

Restricții

Pentru programele care sunt lansate prin cron, se aplică aceleași limite de resurse ca și pentru procesele lansate de un utilizator într-un shell Unix. Este restricții privind timpul de execuție a programului, numărul de memorie disponibilă, restricții privind dimensiunea fișierului și așa mai departe.

Foarte des, în sistemele asemănătoare Linux, poate fi necesară automatizarea unor procese de rutină. Pentru aceasta, se folosesc planificatoare speciale. Una dintre cele mai faimoase dintre ele este Cron, ale cărui setări vor fi discutate în acest articol.

Ce este Cron?

Numele programului este derivat din grecescul „chronos” care înseamnă timp. Ceea ce, de fapt, este logic. Sarcina demonului este să execute comenzile scrise în el în anumite momente. Procesul de implementare în sine se bazează pe verificarea tabelelor coroanei și compararea acestora cu și timpul.

Fișierul Crontab

Cel mai important element al configurației Cron este fișier de configurare crontab. Conține comenzi de execuție și căi către scripturi. Toate rulează ca superutilizator. Deoarece se află în directorul /etc/cron.d, aceste fișiere trebuie configurate acolo.

Un fișier crontab separat este utilizat pentru fiecare utilizator individual de pe sistem.

Diferite distribuții Linux folosesc propriile directoare pentru stocare setari personalizate... Pentru RedHat, aceasta este var / bobină / cron. Pe Debian și Ubuntu, acesta va fi var / spool / cron / crontabs. Și var / spool / cron / tabs în SUSE.

Lista de comenzi pentru gestionarea crontab

Cron are un set de directive speciale care pot fi folosite pentru a controla planificatorul. Ele trebuie utilizate împreună cu crontab. Iată o listă mică:

  • -u nume de utilizator. Setează utilizatorul, cu sarcinile și setările cărora vor fi efectuate actiunile urmatoare... Dacă omitem cheia dată atunci utilizatorul implicit va fi setat.
  • -l. Va afișa lista curentă de sarcini.
  • -e. Lansează editorul pentru planificatorul de activități.
  • -r. Elimină toate sarcinile existente din listă.

Format de sarcină

După cum am menționat mai sus, setarea Cron constă în setarea comenzilor în dosar special... Arată ca simpla intrare format din șase coloane:

  • primul indică numărul de minute. Intervalul disponibil este de la 0 la 59. Puteți utiliza mai multe valori, interval și Simboluri speciale;
  • a doua coloană este orele. Pot fi utilizate valori de la 0 la 23;
  • mai departe - ziua. Aici puteți introduce un număr de la 1 la 31;
  • a patra este o lună. Valoarea minimă este 1, maxima este 12;
  • a cincea - saptamana. 0 sau 7 corespunde duminicii;
  • ultima comandă este executabilul în sine.

După cum sa menționat, puteți specifica caractere speciale în fișier, „*” sau „/”. De exemplu, o astfel de intrare - 23 * / 2 *** echo "Run" înseamnă că la fiecare oră și 23 de minute va fi afișată inscripția "Run".

Caracteristicile fișierului crontab

Când configurați Cron, rețineți că are proprietăți specifice care ar trebui luate în considerare la configurare:

  • fiecare fișier trebuie să fie terminat linie goală, altfel ultimul punct poate fi ignorat, iar uneori întregul fișier;
  • fișierele aflate în directoare cu un punct în nume vor fi, de asemenea, ignorate de planificator;
  • simbolurile hash „#” pot fi folosite în fișierele de configurare. Sunt folosite pentru a marca linii comentate. Acest lucru este foarte util pentru descrierea sarcinilor și comenzilor programate.

Variabile suplimentare

Când configurați Cron, puteți utiliza valori speciale și abrevieri în comenzi. De exemplu, puteți utiliza următoarea listă pentru a specifica ziua săptămânii:

  • soare - duminica;
  • mon - luni;
  • marţi - marţi;
  • miercuri - miercuri;
  • thu - joi;
  • vineri - vineri;
  • sat - sâmbătă.

De luni de zile sunt, de asemenea, separate valori literale- ian, feb, mar, apr, mai, jun, iul, aug, sep, oct, nov, dec.

Există, de asemenea, variabile separate pentru configurarea Cron care pot înlocui linii de comandă întregi:

  • @reboot. Comanda va porni de fiecare dată când computerul este pornit;
  • @anual. Aceasta sarcina va fi lansat o dată pe an. Notația numerică echivalentă poate fi următoarea: 0 0 1 1 *. Sinonimul său poate fi scris și ca @anual;
  • @lunar. După cum ați putea ghici din nume, această variabilă lansează comanda o dată pe lună. Analogul său numeric este 0 0 1 * *;
  • @săptămânal. Această variabilă va rula în fiecare săptămână;
  • @zilnic. O data pe zi;
  • @miezul nopţii. Lansarea va avea loc la miezul nopții;
  • @la oră. Fiecare ora.

Configurarea Cron în Centos 7

Procesul de instalare și configurare în sine nu este mult diferit de alte distribuții Linux similare. Înainte de a configura Cron pe Centos, trebuie să instalați pachetul Cronie pe sistem. Acest lucru se poate face folosind comanda yum install cronie. Pentru a crea un fișier cu instrucțiuni, trebuie să rulați în terminalul crontab -e. Tot setarile sistemului Cron va fi salvat în / var / spool / cron / nume de utilizator.

Câteva exemple utile pentru crearea de sarcini frecvent recurente

Puteți personaliza Cron în așa fel încât să acopere aproape toate nevoile oricărui utilizator.

  • 00 09-17 * * 1 - 5 / cale / spre comanda / coroană. Această comandă va executa automat acțiunea programată în fiecare zi lucrătoare de la ora 9 la 5 la fiecare prim minut;
  • 00 9.17 * * * / cale / la comandă / coroană. În acest exemplu, comanda este executată de două ori pe zi. Primul la 9, al doilea la ora 5. Semnul „*” indică faptul că comanda va fi executată în fiecare zi, lună și an;
  • De asemenea, nu uitați de variabilele simbolice. De exemplu, @monthly va rula sarcina în fiecare lună în primul minut din prima oră a primei zile. @Daily va rula în fiecare zi.

MIN HOUR DOM LUN DOW CMD

Tabel: Câmpuri Crontab și intervale valide (Sintaxa Crontab Linux)

1. Programarea sarcinilor pentru o anumită oră

Utilizarea principală a cron este de a efectua sarcini în anumit timp așa cum se arată mai jos. Acesta va executa scriptul de backup complet pe 10 iunie, la ora 8:30.

Vă rugăm să rețineți că câmpul oră folosește un format de 24 de ore, deci 8 AM este 8, 20 PM este 20 de ore.

30 08 10 06 * / acasă / dezvoltator / backup complet

  • Minutul 30 - 30
  • 08 - 08 AM
  • 10 - a 10-a zi
  • * - În fiecare zi a săptămânii

2. Programați sarcini pentru o execuție mai frecventă (de exemplu, de două ori pe zi)

Următorul script folosește un suplimentar backup de două ori pe zi în fiecare zi. Acest exemplu realizează o copie de rezervă incrementală la 11:00 și 16:00 în fiecare zi. Valorile separate prin virgulă din câmp indică faptul că comanda trebuie executată la fiecare moment specificat.

00 11.16 * * * / home / developer / bin / incremental-backup

00 - al 0-lea minut (începutul orei) 11, 16 - 11 și 16 ore * - în fiecare zi * - în fiecare lună * - în fiecare zi a săptămânii

3. Programul de lucru într-un anumit interval de timp (de exemplu, numai în zilele lucrătoare)

Dacă doriți ca subrutinele să fie executate în fiecare oră la un anumit interval de timp, utilizați următoarele.

Rutina Cron pentru fiecare zi în timpul programului de lucru

Acest exemplu verifică starea bazei de date în fiecare zi (inclusiv în weekend) în timpul programului de lucru de la 9:00 la 18:00.

00 09-18 * * * / home / developer / bin / check-db-status

00 - al 0-lea minut (începutul orei) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (ore) * - în fiecare zi * - în fiecare lună * - în fiecare zi săptămână

Rutina Cron pentru fiecare zi lucrătoare în timpul programului de lucru

Acest exemplu verifică starea bazei de date în fiecare zi lucrătoare (cu excepția sâmbătă și duminică) de la 9:00 la 18:00.

00 09-18 * * 1-5 / acasă / ramesh / bin / verificați starea db

00 - al 0-lea minut (începutul orei) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (ore) * - în fiecare zi * - în fiecare lună 1-5 - luni, Marți, Miercuri, Joi și Vineri (în fiecare săptămână)

4. Cum pot vedea intrările Crontab?

Vizualizați fișierele Crontab curente ale utilizatorului.

Pentru a vizualiza fișierele crontab-l de sus cont unix, faceți următoarele.

[email protected]$ crontab -l @yearly / home / developer / annual-maintenance * / 10 * * * * / home / developer / check-disk-space

Vizualizarea intrărilor rădăcină crontab

Conectați-vă ca utilizator root (su - root) și rulați crontab-l așa cum se arată mai jos.

[email protected]# crontab -l nu există crontab pentru rădăcină

Pentru a vedea fișierele altor utilizatori, conectați-vă ca root și utilizați -u (nume utilizator) -l așa cum se arată mai jos.

[email protected]# crontab -u username -l @monthly / home / username / lunar-backup 00 09-18 * * * / home / username / check-db-status

5. Cum editez intrările crontab?

Editarea înregistrărilor cron ale utilizatorului curent.

Pentru a edita intrările, utilizați cronab -e așa cum se arată mai jos. În mod implicit, crontab-ul curent al utilizatorului va fi editat.

[email protected]$ crontab -e @yearly / home / developer / centos / bin / annual-maintenance * / 10 * * * * / home / developer / debian / bin / check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

Când salvați fișierul, acesta va salva crontab-ul și va afișa următorul mesaj care vă va spune că crontab-ul a fost modificat cu succes.

~ „crontab.XXXXyjWkHw” 2L, 83C scris crontab: instalarea noului crontab

Editarea intrărilor rădăcină crontab

Conectați-vă ca utilizator root(su - root) și faceți crontab -e așa cum se arată mai jos.

[email protected]# crontab -e

Editarea intrărilor crontab ale altui utilizator

Pentru a edita intrarea crontab a altuia utilizator Linux, conectați-vă ca root și utilizați -u (nume de utilizator) -e așa cum se arată mai jos.

[email protected]# crontab -u username -e @monthly / home / username / fedora / bin / monthly-backup 00 09-18 * * * / home / username / ubuntu / bin / check-db-status ~ ~ ~ "/ tmp / crontab .XXXXyjWkHw "2L, 83C

6. Executarea Cron în fiecare minut

În mod ideal, s-ar putea să nu fie nevoie să programați un cron să ruleze în fiecare minut. Dar înțelegerea acestui exemplu vă va ajuta să înțelegeți celelalte exemple descrise în acest articol.

Bash * * * * * CMD

* - înseamnă o unitate posibilă - adică fiecare minut din fiecare oră de-a lungul anului. De asemenea, folosirea * direct se dovedește a fi mai mult functie utilaîn exemplele următoare.

Indicarea * / 5 în câmpul minutelor înseamnă la fiecare 5 minute. Specificarea 0-10 / 2 în câmpul minutelor înseamnă la fiecare 2 minute în primele 10 minute. Astfel, această convenție poate fi utilizată în toate cele 4 domenii.

7. Rulați sarcini Cron în fundal la fiecare 10 minute

Utilizați următoarele dacă doriți să verificați spațiul pe disc la fiecare 10 minute.

* / 10 * * * * / acasă / ramesh / verifica-spațiu-disc

Această sarcină rulează comanda de verificare a discului specificată la fiecare 10 minute pe tot parcursul anului. Cu toate acestea, poate fi necesar să verificați doar în timpul programului de lucru sau invers. Exemplele de mai sus arată cum se face acest lucru.

În loc să specificăm valori în 5 câmpuri, le putem specifica folosind cuvânt cheie așa cum se arată mai jos.

Există conditii speciale când în loc de 5 câmpuri puteți folosi @ urmat de un cuvânt cheie - cum ar fi repornire, miezul nopții, anual, oră.

Cuvinte cheie Cron speciale și semnificația lor

8. Programați pentru primul minut al fiecărui an folosind @yearly

Dacă doriți ca sarcina cron să ruleze în primele minute ale fiecărui an, puteți utiliza cuvântul cheie @yearly așa cum se arată mai jos. În stiva, sistemul va efectua un anual întreținere folosind scriptul de întreținere anuală la ora 00:00 pe 1 ianuarie a fiecărui an.

@anual / acasă / dezvoltator / red-hat / coș / anual-întreținere

9. Rulați sarcini în fiecare lună folosind cuvântul cheie @monthly

Este similar cu @yearly de mai sus. Dar comanda este executată lunar. Echipa va face back-up la ora 00:00 pe prima zi a fiecărei luni.

@monthly / home / ramesh / suse / bin / tape-backup

10. Rulați sarcini în fiecare zi folosind @daily

Utilizarea cuvântului cheie @daily va genera un fișier jurnal de curățare zilnic la ora 00:00 în fiecare zi.

@daily / home / developer / arch-linux / bin / cleanup-logs „ziua a început”

11. Cum se execută comanda Linux după fiecare repornire folosind @reboot?

Folosind cuvântul cheie @reboot, comanda specificată va fi executată de fiecare dată când sistemul pornește.

@reboot CMD

13. 12. Cum pot dezactiva/redirecționa e-mailurile trimise Crontab folosind cuvântul cheie MAIL?

În mod implicit, crontab trimite sarcini de ieșire utilizatorului care a instalat sarcina. Dacă doriți să le redirecționați către un alt utilizator, adăugați sau actualizați variabila MAIL în crontab, așa cum se arată mai jos.

[email protected]$ crontab -l MAIL = "dezvoltator" @anual / acasă / dezvoltator / întreținere anuală * / 10 * * * * / acasă / dezvoltator / verifica-spațiu-disc

Dacă doriți să împiedicați deloc trimiterea e-mailurilor, adică să opriți trimiterea fișierelor crontab de ieșire, adăugați sau actualizați variabila MAIL în crontab, așa cum se arată mai jos.

13. Cum să executați sarcini Cron Linux în fiecare secundă folosind Crontab

Nu puteți configura cron să ruleze în fiecare secundă. Pentru că cea mai mică unitate de execuție cron este un minut. Într-un scenariu tipic, nu este nevoie să rulați execuția cron în fiecare secundă.

14. Specificarea variabilei PATH în Crontab

În toate exemplele de mai sus, am indicat cale absolută comenzi Linux sau un script shell care urmează să fie executat.

De exemplu, în loc să specificați / home / developer / tape-backup, dacă doriți doar să specificați tape-backup, adăugați calea / home / developer la PATH în crontab, așa cum se arată mai jos.

[email protected]$ crontab -l PATH = / bin: / sbin: / usr / bin: / usr / sbin: / home / developer @yearly annual-maintenance * / 10 * * * * verifica-spațiu-disc

15. Instalarea Crontab din fișierul Cron

In loc de editare directă din fișierul crontab puteți adăuga toate intrările în fișierul cron. Dacă fișierul are aceste intrări, le puteți descărca sau instala în cron, așa cum se arată mai jos.

Notă: Un fișier cron-file.txt va fi creat în crontab, care va fi eliminat înregistrări anterioare cron. Deci, vă rugăm să fiți atenți când încărcați intrări cron din cron-file.txt:

[email protected]$ crontab -l nu crontab pentru dezvoltator $ cat cron-file.txt @yearly / home / developer / annual-maintenance * / 10 * * * * / home / developer / check-disk-space [email protected]$ crontab cron-file.txt [email protected]$ crontab -l @yearly / home / developer / annual-maintenance * / 10 * * * * / home / developer / check-disk-space

În sistem Linux pornirea automată a sarcinilor este efectuată de demonul crond, iar programarea pentru pornire automată sarcinile pot fi efectuate nu numai de administratorul de sistem, ci și de utilizatori.

Cum funcționează crond

Modul în care funcționează demonul crond este simplu. După pornire (de regulă, când sistemul pornește), demonul se trezește în fiecare minut și verifică dacă vreun program este programat să pornească în acel moment. Dacă astfel de programe sunt găsite, demonul le pornește și trimite mesaje de e-mail utilizatorilor care sunt programați să pornească.

Programarea sarcinilor

Programarea nu este dificilă. Programul se află într-un fișier crontab separat. Fiecare linie a fișierului conține o sarcină care ar trebui să fie lansată la un moment specific.

Formatul intrărilor din fișierul crontab

Partea oră-data constă din cinci câmpuri numerice, separate prin spații, care determină când va începe sarcina:

Pentru comoditatea completării câmpurilor indicate, au fost introduse următoarele reguli:

  • Puteți specifica valori ca intervale numerice. De exemplu, 1-3 în câmpul ore înseamnă 1.00, 2.00 și 3.00 la miezul nopții, iar 2-4 în câmpul pentru ziua săptămânii înseamnă marți, miercuri sau joi.
  • Intervalele pot fi setate în trepte mai mari de unu. De exemplu, pentru a specifica fiecare a doua oră, începând cu miezul nopții, setați intervalul 0-23 cu un pas de 2 despărțit de o bară oblică: 0-23 / 2
  • Un asterisc (*) indică întreaga gamă de valori ale câmpului, de la minim la maxim. De exemplu, în câmpul zilei lunii, un asterisc înseamnă intervalul 0-31, în câmpul zilei săptămânii - 0-7
  • Ziua săptămânii sau a lunii poate fi specificată prin primele trei litere ale numelui său (în engleză).

Exemple de timp-dată

Câteva exemple de completare a câmpurilor oră-date:

0 1 * * * Rulați lucrarea în fiecare zi la 1.00 miezul nopții 30 14 * * 0 Rulați lucrarea duminica la 14.30 0 23-7 / 2.8 * * * Rulați lucrarea la fiecare 2 ore de la 23.00 la 7.00 și 8.00 0 12 * 1 luni Începe sarcina la prânz în fiecare luni din ianuarie a fiecărui an 0 12 2 feb * Începe sarcina la prânz în data de 2 februarie a fiecărui an

Câmp de comandă

Câmpul de comandă este separat de câmpurile oră-date prin unul sau mai multe spații și se extinde până la sfârșitul liniei. Comenzile sunt procesate de shell-ul / bin / sh.

De exemplu, următoarea intrare crontab solicită ca programul / usr / sbin / backup să ruleze în fiecare zi la 1:00 a.m.:

0 1 * * * / usr / sbin / backup

Unele comenzi (de exemplu, e-mail) necesită introducerea de la dispozitiv stdin... Acest lucru este indicat folosind un semn de procente (%). Primul astfel de caracter denotă începutul intrării standard, fiecare ulterior denotă o întrerupere de linie.

Editarea fișierului crontab

Fișierul crontab este editat cu comanda crontab -e. Sunt posibile două abordări:

  • crearea unui fișier nou cu toate intrările care ar trebui să fie incluse în fișierul crontab și apoi scrierea lui pe disc sub acest nume folosind comanda crontab;
  • editarea directă a fișierului folosind comanda crontab -e.

Înregistrare din fișier

Pentru a scrie conținutul fișierului crontab dintr-un alt fișier, trebuie să creați acest alt fișier (în mod obișnuit editor de text) cu toate intrările din care ar trebui să fie format fișierul crontab. Aceasta poate fi, de exemplu, următoarea intrare:

0 1 * * * / usr / sbin / backup

Fișierul creat ar trebui să primească un nume adecvat, de exemplu joburi cron. După fișierul specificat creat, conținutul său trebuie scris în fișierul crontab cu comanda:

~ $ crontab cronjobs

Conținutul fișierului cronjobs va înlocui complet conținutul fișierului crontab utilizator dat... Folosind această metodă, oricine își poate edita fișierul crontab. Superutilizatorul are permisiunea specială pentru a edita crontaburile altor utilizatori. Editarea fișierului altcuiva este indicată de indicatorul -u. De exemplu, prin comandă:

~ # crontab -u oleg cronjobs

fișierul cronjobs este scris ca fișier crontab al utilizatorului oleg.

Editarea directă a fișierului crontab

Comanda crontab evită operația de creare în mai mulți pași un dosar separat... Dacă introduceți comanda crontab cu opțiunea -e, puteți edita direct fișierul crontab.

În mod implicit, comanda crontab cu opțiunea -e încarcă fișierul crontab în editor. Editor Vi este un instrument puternic, deși complex, popular utilizatori experimentați Unix... Cineva care preferă un editor diferit, cum ar fi Xedit, poate seta valoarea corespunzătoare variabilă de mediu EDITOR:

~ $ export EDITOR = xedit

După aceea, introduceți comanda

face ca fișierul crontab să fie deschis în editorul specificat.

Similar cu utilizator obișnuit pot edita propriul dosar crontab, superutilizatorul poate edita crontab-urile altor utilizatori. Pentru a face acest lucru, utilizați comanda:

~ # crontab -u nume de utilizator -e

Vizualizarea fișierului crontab

Pentru a vizualiza conținutul fișierului crontab, introduceți comanda:

Superutilizatorul poate vizualiza crontaburile altor utilizatori:

~ # crontab -u nume de utilizator -l

Eliminarea fișierului crontab

Pentru a elimina conținutul fișierului crontab, utilizatorul introduce comanda:

Superutilizatorul poate șterge crontab-urile altor utilizatori.

Top articole similare