table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.25.0-1
CRON(8) | System Manager's Manual | CRON(8) |
NUME¶
cron - daemon pentru a executa comenzi programate (Vixie Cron)
SINOPSIS¶
cron [-f] [-l] [-L nivel-jurnalizare]
DESCRIERE¶
cron este pornit automat din „/etc/init.d” la intrarea în nivelele de execuție multi-utilizator.
OPȚIUNI¶
- -f
- Rămâne în modul de prim-plan, nu trece în modul demon.
- -l
- Activează numele conforme cu LSB pentru fișierele „/etc/cron.d”. Cu toate acestea, această opțiune nu afectează analizarea fișierelor din „/etc/cron.hourly”, „/etc/cron.daily”, „/etc/cron.weekly” sau „/etc/cron.monthly”.
- -n
- Include FQDN în subiect atunci când trimite e-mailuri. În mod implicit, «cron» va prescurta numele de gazdă.
- -L nivel-jurnalizare
- Îi indică lui «cron» ce să
înregistreze despre sarcini (erorile sunt
înregistrate indiferent de această valoare) ca sumă a
următoarelor valori:
- 1
- va înregistra începerea tuturor sarcinilor «cron»
- 2
- va înregistra sfârșitul tuturor sarcinilor «cron»
- 4
- va înregistra toate sarcinile eșuate (starea de ieșire != 0)
- 8
- va înregistra numărul de proces al tuturor sarcinilor cron
- Valoarea implicită este de a înregistra începutul tuturor sarcinilor (1). Înregistrarea va fi dezactivată dacă nivele este stabilit la zero (0). O valoare de cincisprezece (15) va selecta toate opțiunile.
NOTE¶
cron caută în zona sa „spool” (/var/spool/cron/crontabs) fișierele crontab (care sunt denumite după conturile din „/etc/passwd”); fișierele crontab găsite sunt încărcate în memorie. Rețineți că fișierele crontab din acest director nu trebuie accesate direct - comanda crontab trebuie utilizată pentru a le accesa și actualiza.
cron citește, de asemenea, „/etc/crontab”, care are un format ușor diferit (a se vedea crontab(5)). În Debian, conținutul din „/etc/crontab” este predefinit pentru a rula programe din „/etc/cron.hourly”, „/etc/cron.daily”, „/etc/cron.weekly” și „/etc/cron.monthly”. Această configurație este specifică pentru Debian, a se vedea nota din secțiunea SPECIFIC DEBIAN de mai jos.
În plus, în Debian, cron citește fișierele din directorul „/etc/cron.d”. cron tratează fișierele din „/etc/cron.d” în același mod ca și fișierul „/etc/crontab” (acestea urmează formatul special al acelui fișier, adică includ câmpul user). Cu toate acestea, ele sunt independente de „/etc/crontab”: nu moștenesc, de exemplu, valorile variabilelor de mediu de la acesta. Această modificare este specifică pentru Debian, a se vedea nota din secțiunea SPECIFIC DEBIAN de mai jos.
La fel ca și „/etc/crontab”, fișierele din directorul „/etc/cron.d” sunt monitorizate pentru modificări. În general, administratorul de sistem nu ar trebui să utilizeze „/etc/cron.d/”, ci să folosească crontab-ul standard al sistemului „/etc/crontab”.
„/etc/crontab” și fișierele din „/etc/cron.d” trebuie să fie deținute de root și nu trebuie să poată fi scrise de grup sau de alții. Spre deosebire de zona „spool”, fișierele din „/etc/cron.d” sau fișierele din „/etc/cron.hourly”, „/etc/cron.daily”, „/etc/cron.weekly” și „/etc/cron.monthly” pot fi, de asemenea, legături simbolice, cu condiția ca atât legătura simbolică, cât și fișierul către care indică să fie deținute de root. Fișierele din „/etc/cron.d” nu trebuie să fie executabile, în timp ce fișierele din „/etc/cron.hourly”, „/etc/cron.daily”, „/etc/cron.weekly” și „/etc/cron.monthly” trebuie să fie executabile, deoarece sunt rulate de run-parts (consultați run-parts(8) pentru mai multe informații).
cron se trezește apoi la fiecare minut, examinând toate fișierele crontab stocate, verificând fiecare comandă pentru a vedea dacă ar trebui să fie executată în minutul curent. La executarea comenzilor, orice ieșire este trimisă prin poștă proprietarului fișierului crontab (sau utilizatorului menționat în variabila de mediu MAILTO din crontab, dacă aceasta există) de la proprietarul fișierului crontab (sau de la adresa de e-mail menționată în variabila de mediu MAILFROM din crontab, dacă aceasta există). Copiile copii ale «cron» care rulează aceste procese au numele lor forțat la majuscule, așa cum se va vedea în «syslog» și în «ps».
În plus, cron verifică în fiecare minut dacă timpul de modificare al directorului său „spool” (sau timpul de modificare din fișierul /etc/crontab) s-a schimbat, iar dacă s-a schimbat, cron va examina apoi timpul de modificare al tuturor fișierelor crontab și le va reîncărca pe cele care s-au schimbat. Astfel, nu este necesar ca cron să fie repornit de fiecare dată când un fișier crontab este modificat. Rețineți că comanda crontab(1) actualizează timpul de modificare al directorului „spool” ori de câte ori modifică un crontab.
Există considerații speciale atunci când ceasul este schimbat cu mai puțin de 3 ore, de exemplu la începutul și la sfârșitul orei de vară. În cazul în care ora a fost devansată, acele sarcini care ar fi trebuit să se execute în timpul care a fost sărit vor fi executate imediat după schimbare. În schimb, dacă ora s-a mutat înapoi cu mai puțin de 3 ore, acele sarcini care se încadrează în timpul repetat nu vor fi reluate.
Sunt afectate numai sarcinile care se execută la o anumită oră (care nu sunt specificate ca @hourly și nici cu „*” în specificatorul oră sau minut). Sarcinile care sunt specificate cu caractere joker sunt executate imediat pe baza noii ore.
Modificările de mai mult de 3 ore ale ceasului sunt considerate corecții ale ceasului, iar noua oră este utilizată imediat.
cron își înregistrează acțiunea în facilitatea syslog „cron”, iar înregistrarea poate fi controlată utilizând facilitatea standard syslogd(8).
MEDIU¶
Dacă este configurat în /etc/default/cron în sistemele Debian, configurația regională a daemonului cron poate fi gestionată prin utilizarea /etc/environment sau prin utilizarea /etc/default/locale, valorile din acesta din urmă având prioritate asupra valorilor din primul. Aceste fișiere sunt citite și vor fi utilizate pentru a configura variabilele de mediu LANG, LC_ALL și LC_CTYPE. Aceste variabile sunt apoi utilizate pentru a stabili setul de caractere al mesajelor de poștă electronică, care are valoarea implicită „C”.
Acest lucru NU afectează mediul de lucru al sarcinilor care rulează sub cron. Pentru mai multe informații despre cum să modificați mediul sarcinilor, consultați crontab(5).
Demonul va utiliza, dacă este prezentă, definiția din /etc/timezone pentru fusul orar.
Mediul poate fi redefinit în definițiile crontab ale utilizatorului, dar cron va gestiona doar sarcini într-un singur fus orar.
SPECIFIC DEBIAN¶
Debian introduce unele modificări la cron care nu au fost inițial disponibile în amonte. Cele mai importante modificări introduse sunt:
- —
- suport pentru „/etc/cron.{hourly,daily,weekly,monthly}” prin intermediul fișierului „/etc/crontab”,
- —
- suport pentru „/etc/cron.d” (directorul de preluare pentru pachetele crontabs),
- —
- suport pentru PAM,
- —
- suport pentru SELinux,
- —
- suport pentru auditlog,
- —
- schimbarea orei de vară/iarnă și alte modificări și corecții legate de oră,
- —
- SGID crontab(1) în loc de SUID root,
- —
- locații de fișiere și comenzi specifice Debian,
- —
- configurație specifică Debian (/etc/default/cron),
- —
- numeroase alte caracteristici și corecturi mai mici.
Suportul pentru „/etc/cron.hourly”, „/etc/cron.daily”, „/etc/cron.weekly” și „/etc/cron.monthly” este asigurat în Debian prin intermediul configurării implicite din fișierul „/etc/crontab” (a se vedea exemplul pentru întregul sistem în crontab(5)). Crontab-ul implicit la nivel de sistem conține patru sarcini: rularea în fiecare oră, în fiecare zi, în fiecare săptămână și în fiecare lună. Fiecare dintre aceste sarcini va executa run-parts furnizând ca argument fiecare dintre directoare. Aceste sarcini sunt dezactivate dacă este instalat anacron (cu excepția sarcinii orare) pentru a preveni conflictele dintre cei doi demoni.
După cum s-a descris mai sus, fișierele din aceste directoare trebuie să treacă anumite verificări de corectitudine, inclusiv următoarele: să fie executabile, să fie deținute de root, să nu poată fi scrise de un grup sau de alții și, în cazul în care sunt legături simbolice, să indice către fișiere deținute de root. În plus, numele fișierelor trebuie să fie conforme cu cerințele privind numele de fișiere din run-parts: trebuie să fie alcătuite în întregime din litere, cifre și pot conține numai semnele speciale de subliniere („_”) și cratimă („-”). Orice fișier care nu este conform cu aceste cerințe nu va fi executat de run-parts. De exemplu, orice fișier care conține puncte va fi ignorat. Acest lucru se face pentru a împiedica cron să execute oricare dintre fișierele care sunt lăsate de sistemul de gestionare a pachetelor Debian atunci când gestionează fișierele din „/etc/cron.d/” ca fișiere de configurare (adică fișierele care se termină în .dpkg-dist, .dpkg-orig, .dpkg-old și .dpkg-new).
Această caracteristică poate fi utilizată de administratorii de sistem și de pachete pentru a include sarcini care vor fi executate la intervale definite. Fișierele create de pachete în aceste directoare trebuie să poarte numele pachetului care le furnizează.
Suportul pentru „/etc/cron.d” este inclus în demonul cron însuși, care gestionează această locație ca fiind distribuitorul „crontab” la nivel de sistem. Acest director poate conține orice fișier care definește sarcini, urmând formatul utilizat în „/etc/crontab”, adică spre deosebire de directorul de „crontab” al utilizatorului, aceste fișiere trebuie să furnizeze numele de utilizator pentru a executa sarcina ca în definiția sarcinii.
Fișierele din acest director trebuie să fie deținute de root, nu trebuie să fie executabile (sunt fișiere de configurare, la fel ca „/etc/crontab”) și trebuie să respecte aceeași convenție de denumire ca și cea utilizată de run-parts(8) : trebuie să fie formate numai din litere majuscule și minuscule, cifre, liniuțe și sublinieri. Aceasta înseamnă că nu pot conține puncte. Dacă opțiunea -l este specificată la cron (această opțiune poate fi configurată prin „/etc/default/cron”, a se vedea mai jos), atunci ele trebuie să fie conforme cu specificația spațiului de nume LSB, exact ca în cazul opțiunii --lsbsysinit din run-parts.
Scopul acestei funcții este de a permite pachetelor care necesită un control mai fin al programării lor decât directoarele „/etc/cron.{hourly,daily,weekly,monthly”} să adauge un fișier „crontab” la „/etc/cron.d”. Astfel de fișiere ar trebui să fie denumite după pachetul care le furnizează.
De asemenea, configurația implicită a cron este controlată de /etc/default/cron care este citit de scriptul init.d care lansează demonul cron. Acest fișier determină dacă cron va citi variabilele de mediu ale sistemului și face posibilă adăugarea de opțiuni suplimentare programului cron înainte ca acesta să fie executat, fie pentru a configura jurnalizarea sa, fie pentru a defini modul în care va trata fișierele din „/etc/cron.d”.
CONSULTAȚI ȘI¶
crontab(1), crontab(5), run-parts(8)
AUTOR¶
Paul Vixie <paul@vix.com> este autorul lui cron și creatorul original al acestei pagini de manual. Această pagină a fost, de asemenea, modificată pentru Debian de către Steve Greenland, Javier Fernandez-Sanguino și Christian Kastner.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
19 aprilie 2010 | 4th Berkeley Distribution |