CRON(8)

NUME
cron - daemon pentru a executa comenzi programate (Vixie Cron)

SINOPSIS

cron [-f] [-l] [-L nivel-jurnalizare] [-n fqdn] [-x fanioane-depanare]

cron [-N]

DESCRIERE

cron este invocat direct de systemd(1) 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 fqdn
    Include FQDN în subiect atunci când trimite e-mailuri. În mod implicit, cron va prescurta numele de gazdă.

-N
    Rulează sarcinile cron (acum, imediat), și iese. Această opțiune este utilă pentru a efectua teste.

-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ă nivel-jurnalizare este stabilit la zero (0). O valoare de cincisprezece (15) va selecta toate opțiunile.

-x fanioane-depanare
    Îi indică lui cron să fie mai detaliat și să emită informații de depanare; fanioane-depanare este suma acestor valori:

    1
        "ext": ...

    2
        "sch": ...

    4
        "proc": ...

    8
        "pars": ...

    16
        "load": ..

    32
        "misc": ...

    64
        "test": ...

    128
        "bit": ...

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(1) 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. Administratorul de sistem poate crea sarcini cron în /etc/cron.d/ cu nume de fișiere precum „local” sau „local-foo”.

/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 ieșirea din «syslog» și în ps(1).

Î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/localtime 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(8) furnizând ca argument fiecare dintre directoare. Aceste sarcini sunt dezactivate dacă este instalat anacron(8) (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(8): 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(8). 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(8).

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)

AUTORI

Paul Vixie <paul@vix.com>
    A scris această pagină de manual (1994).

Steve Greenland <stevegr@debian.org>
    A întreținut pachetul (1996-2005)

Javier Fernández-Sanguino Peña <jfs@debian.org>
    A întreținut pachetul (2005-2014).

Christian Kastner <ckk@debian.org>
    A întreținut pachetul (2010-2016).

Georges Khaznadar <georgesk@debian.org>
    A întreținut pachetul (2022-2024).

DREPTURI DE AUTOR
Drepturi de autor © 1994 Paul Vixie

Distribuiți liber, cu următoarele excepții: nu-mi scoateți numele din sursă sau din documentație (nu-mi luați creditul pentru munca mea), marcați-vă modificările (nu mă faceți să fiu învinovățit pentru eventualele erori), nu modificați sau eliminați această notificare. Poate fi vândut dacă sursa construibilă este furnizată cumpărătorului. Nici o garanție de orice fel, expresă sau implicită, nu este inclusă cu acest software; utilizați-l pe propriul risc, responsabilitatea pentru daunele (dacă există) aduse cuiva ca urmare a utilizării acestui software revine în întregime utilizatorului.

Începând cu anul 1994, multe modificări au fost făcute în această pagină de manual, scrisă de dezvoltatorii Debian care au întreținut cron(TM); mai sus este o listă scurtă, mai multe informații pot fi găsite în fișierul /usr/share/doc/cron/copyright.

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.