Provided by: manpages-ro_4.28.0-2_all bug

NUME

       crontab - tabele pentru coordonarea cron

DESCRIERE

       Un fișier crontab conține instrucțiuni pentru demonul cron(8) de forma generală: „execută această comandă
       la această oră la această dată”. Fiecare utilizator are propriul său fișier crontab, iar comenzile din
       orice fișier crontab dat vor fi executate ca utilizatorul care deține fișierul crontab.  Uucp și News vor
       avea de obicei propriile fișiere crontab, eliminând necesitatea de a executa în mod explicit su(1) ca
       parte a unei comenzi cron.

       Rețineți că comentariile pe aceeași linie cu comenzile cron nu sunt interpretate ca fiind comentarii în
       accepția cron, ci sunt considerate parte a comenzii și transmise către shell. Acest lucru este valabil și
       pentru comentariile de pe aceeași linie cu valorile variabilelor de mediu.

       O linie activă într-un crontab va fi fie o opțiune de mediu, fie o comandă cron. O opțiune de mediu este
       de forma,

           nume = valoare

       unde spațiile din jurul semnului egal (=) sunt opționale, iar orice spații ulterioare care nu precedă
       valoarea vor face parte din valoarea atribuită lui nume. Șirul de caractere valoare poate fi plasat între
       ghilimele (simple sau duble, dar identice) pentru a păstra spațiile libere anterioare sau posterioare.

       Șirul valoare nu este analizat pentru substituții de mediu sau înlocuirea variabilelor sau expansiunea
       tildei (~), astfel încât linii precum

           PATH=$HOME/bin:$PATH
           PATH=~/bin:/usr/bin

       nu vor funcționa așa cum v-ați aștepta. Și nici acest lucru nu va funcționa.

           A=1
           B=2
           C=$A $B

       Nu va exista nicio substituție pentru variabilele definite în ultima valoare. Cu toate acestea, cu cele
       mai multe shell-uri puteți încerca, de asemenea, de exemplu:

           P=PATH=/a/b/c:$PATH
           33 22 1 2 3 eval $P && vreo comandă/comenzi

       Mai multe variabile de mediu sunt configurate automat de către demonul cron(8). Variabila SHELL este
       definită la „/bin/sh”, iar variabilele LOGNAME și HOME sunt definite din linia „/etc/passwd” a
       proprietarului fișierului crontab. Variabilele HOME și SHELL pot fi înlocuite de configurările din
       crontab; variabila LOGNAME nu poate fi înlocuită.

       (O altă notă: variabila LOGNAME este numită uneori USER pe sistemele BSD... pe aceste sisteme, USER va fi
       definită de asemenea.)

       În plus față de LOGNAME, HOME, și SHELL, cron(8) se va uita la MAILTO dacă are vreun motiv să trimită
       mesaje ca urmare a executării comenzilor din „acest” fișier crontab. Dacă MAILTO este definită (și nu
       este goală), mesajul este trimis utilizatorului numit astfel. Dacă MAILTO este definită, dar este goală
       (MAILTO=„”), nu va fi trimis niciun mesaj. În caz contrar, mesajul este trimis către proprietarul
       fișierului crontab. Această opțiune este utilă dacă decideți să folosiți „/bin/mail” în loc de
       „/usr/lib/sendmail” ca agent de poștă electronică atunci când instalați cron -- „/bin/mail” nu oferp
       suport pentru nume-alias, iar UUCP de obicei nu citește corespondența acestuia.

       Formatul unei comenzi cron este foarte apropiat de standardul V7, cu o serie de extensii compatibile cu
       versiunile ulterioare. Fiecare linie are cinci câmpuri de oră și dată, urmate de o comandă, urmată de un
       caracter de linie nouă ('\n'). Fișierul crontab de sistem (/etc/crontab) utilizează același format, cu
       excepția faptului că numele de utilizator pentru comandă este specificat după câmpurile de oră și dată și
       înainte de comandă. Câmpurile pot fi separate prin spații sau tabulatoare. Lungimea maximă permisă pentru
       câmpul comenzii este de 998 de caractere.

       Comenzile sunt executate de cron(8) atunci când câmpurile minut, oră și lună a anului corespund orei
       curente și atunci când cel puțin unul dintre cele două câmpuri ale zilei (ziua din lună sau ziua din
       săptămână) corespunde orei curente (a se vedea „Nota” de mai jos). cron(8) examinează intrările cron o
       dată la fiecare minut. Câmpurile de oră și dată sunt:
       ┌────────────────────┬─────────────────────────────────────┐
       │ câmpvalori admise                       │
       ├────────────────────┼─────────────────────────────────────┤
       │ minut              │ 0-59                                │
       ├────────────────────┼─────────────────────────────────────┤
       │ oră                │ 0-23                                │
       ├────────────────────┼─────────────────────────────────────┤
       │ ziua din lună      │ 0-31                                │
       ├────────────────────┼─────────────────────────────────────┤
       │ luna               │ 0-12 (sau nume, a se vedea mai jos) │
       ├────────────────────┼─────────────────────────────────────┤
       │ ziua din săptămână │ 0-7 (0 sau 7 este duminică, sau     │
       │                    │ folosiți nume. în eng.)             │
       └────────────────────┴─────────────────────────────────────┘

       Un câmp poate fi un asterisc (*), care reprezintă întotdeauna „primul-ultimul”.

       Intervalele de numere sunt permise. Intervalele sunt două numere separate cu o cratimă. Intervalul
       specificat este inclusiv. De exemplu, 8-11 pentru o intrare „ore” specifică executarea la orele 8, 9, 10
       și 11.

       Listele sunt permise. O listă este un set de numere (sau intervale) separate prin virgulă. Exemple:
       „1,2,5,9”, „0-4,8-12”.

       Valorile pas cu pas pot fi utilizate împreună cu intervalele. Urmarea unui interval cu un „/<număr>”
       specifică salturi ale valorii numărului prin interval. De exemplu, „0-23/2” poate fi utilizat în câmpul
       „ore” pentru a specifica executarea comenzii la fiecare două ore (alternativa din standardul V7 este „0,
       2,4,6,8,10,12,14,16,18,20,22”). Pașii sunt, de asemenea, permiși după un asterisc, deci dacă doriți să
       spuneți „la fiecare două ore”, folosiți „*/2”.

       Numele pot fi, de asemenea, utilizate pentru câmpurile „luna” și „ziua din săptămână”. Utilizați primele
       trei litere ale numelui zilei sau lunii respective (în englexă; nu contează minuscule/majusculele).
       Intervalele sau listele de nume nu sunt permise.

       Al „șaselea” câmp (restul liniei) specifică comanda care urmează să fie executată. Întreaga porțiune de
       comandă din linie, până la o linie nouă sau un caracter „%”, va fi executată de /usr/bin/sh sau de
       shell-ul specificat în variabila SHELL din fișierul «cron». Semnele de procent (%) din comandă, cu
       excepția cazului în care sunt eludate cu o bară oblică inversă (\), vor fi transformate în caractere de
       linie nouă, iar toate datele după primul % vor fi trimise la comandă ca intrare standard..

       Notă: Ziua de execuție a unei comenzi poate fi specificată prin două câmpuri — ziua din lună și ziua din
       săptămână. Dacă ambele câmpuri sunt restricționate (adică nu sunt *), comanda va fi executată atunci când
       oricare dintre câmpuri corespunde orei curente. De exemplu: „30 4 1,15 * 5” ar face ca o comandă să fie
       executată la ora 4:30 în zilele de 1 și 15 ale fiecărei luni, plus în fiecare vineri. Cu toate acestea,
       se poate obține rezultatul dorit prin adăugarea unui test la comandă (a se vedea ultimul exemplu în
       EXEMPLUL DE FIȘIER CRON de mai jos).

       Instead of the first five fields, one of eight special strings may appear:
       ┌───────────┬───────────────────────────────────────┐
       │ șirsemnificație                          │
       ├───────────┼───────────────────────────────────────┤
       │ @reboot   │ Rulează o dată, la pornire.           │
       ├───────────┼───────────────────────────────────────┤
       │ @yearly   │ Rulează o dată pe an, „0 0 1 1 *”.    │
       ├───────────┼───────────────────────────────────────┤
       │ @annually │ (la fel ca @yearly)                   │
       ├───────────┼───────────────────────────────────────┤
       │ @monthly  │ Rulează o dată pe lună, „0 0 1 * *”.  │
       ├───────────┼───────────────────────────────────────┤
       │ @weekly   │ Rulează o dată pe săptămână, „0 0 * * │
       │           │ 0”.                                   │
       ├───────────┼───────────────────────────────────────┤
       │ @daily    │ Rulează o dată pe zi, „0 0 * * * *”.  │
       ├───────────┼───────────────────────────────────────┤
       │ @midnight │ (la fel ca @daily)                    │
       ├───────────┼───────────────────────────────────────┤
       │ @hourly   │ Se execută o dată pe oră, „0 * * *    │
       │           │ *”.                                   │
       └───────────┴───────────────────────────────────────┘

       Vă rugăm să rețineți că pornirea, în ceea ce privește @reboot, este momentul în care demonul cron(8)
       pornește. În special, poate fi înainte ca unii demoni de sistem, sau alte facilități, să fi fost porniți.
       Acest lucru se datorează secvenței ordinii de pornire a mașinii.

EXEMPLU DE FIȘIER CRON

           # utilizează /usr/bin/sh pentru a rula comenzi, indiferent de ceea ce spune /etc/passwd
           SHELL=/usr/bin/sh
           # trimite orice ieșire către „paul”, indiferent al cui fișier crontab este acesta
           MAILTO=paul
           #
           # rulează în fiecare zi la cinci minute după miezul nopții
           5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
           # rulează la 2:15pm în prima zi a fiecărei luni - ieșirea trimisă la paul
           15 14 1 * *     $HOME/bin/monthly
           # rulează la ora 10 pm în zilele lucrătoare, enervând-ul pe Joe
           0 22 * * 1-5    mail -s "Este ora 10 pm” joe%Joe,%%unde sunt copiii tăi?%
           23 0-23/2 * * * echo "rulează 23 de minute după miezul nopții, 2am, 4am ..., în fiecare zi"
           5 4 * * sun     echo "rulează la 5 minute după ora 4 în fiecare duminică"
           0 */4 1 * mon   echo "rulează la fiecare 4 ore pe data de 1 a lunii și în fiecare zi de luni"
           0 0 */2 * sun   echo "rulează la miezul nopții în fiecare duminică care este o dată impară"
           # Rulează în fiecare a doua sâmbătă a lunii
           0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "A doua sâmbătă"
           # Același lucru, la fel de eficient:
           0 4 * * * Sat   d=$(date +e) && test $d -ge 8 -a $d -le 14 && echo "A doua sâmbătă"
           #Se execută devreme în dimineața următoare primei
           #joi a fiecărei luni
           57 2 * * 5 case $(date +d) in 0[2-8]) echo "După prima zi de joi"; esac

       Toate exemplele de mai sus rulează programe non-interactive. Dacă doriți să rulați un program care
       interacționează cu mediul grafic de birou al utilizatorului, trebuie să vă asigurați că variabila de
       mediu DISPLAY este definită corect.

           # Execută un program și rulează o notificare în fiecare zi la ora 10:00 am
           0 10 * * *  $HOME/bin/program | DISPLAY=:0 notify-send "Se execută programul" "$(cat)"

EXEMPLU DE FIȘIER CRON DE SISTEM

       Următoarele prezintă conținutul unui fișier crontab obișnuit la nivel de sistem. Spre deosebire de
       fișierul crontab al unui utilizator, acest fișier are câmpul „numele utilizatorului”, ca cel utilizat de
       /etc/crontab.

           # /etc/crontab: system-wide crontab
           # Spre deosebire de orice alt fișier crontab, nu trebuie să executați comanda
           # «crontab» pentru a instala noua versiune atunci când editați acest fișier și
           # fișierele din „/etc/cron.d”. Aceste fișiere au, de asemenea, câmpuri de nume
           # de utilizator, pe care niciunul dintre celelalte fișiere crontab nu le au.

           SHELL=/bin/sh
           PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

           # Exemplu de definire a sarcinii:
           # .---------------- minute (0 - 59)
           # |  .------------- ora    (0 - 23)
           # |  |  .---------- ziua din lună (1 - 31)
           # |  |  |  .------- luna (1 - 12) SAU jan,feb,mar,apr ...
           # |  |  |  |  .---- ziua din săptămână (0 - 6) (Duminică=0 sau 7) SAU sun,mon,tue,wed,thu,fri,sat
           # m h zdl lun zds comandă-dorită-utilizator
           17 * * * *  root  cd / && run-parts --report /etc/cron.hourly
           25 6 * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
           47 6 * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
           52 6 1 * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
           #

       Rețineți că toate sarcinile la nivel de sistem vor fi executate, în mod implicit, de la 6 dimineața la 7
       dimineața. În cazul sistemelor care nu sunt pornite în această perioadă de timp, vor fi executate doar
       sarcinile orare, cu excepția cazului în care se modifică valorile implicite de mai sus.

ÎNCĂ UN EXEMPLU

       În acest exemplu se poate vedea că numerele pot fi precedate de 0, pentru a alinia coloanele.

           17  * * * *  root  cd / && run-parts --report /etc/cron.hourly
           25 16 * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
           47 06 * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
           52 06 1 * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

CONSULTAȚI ȘI

       cron(8), crontab(1)

EXTENSII

       Atunci când se specifică ziua săptămânii, atât ziua 0, cât și ziua 7 vor fi considerate duminică. BSD și
       AT&T par să nu fie de acord cu privire la acest lucru.

       Listele și intervalele pot coexista în același câmp. „1-3,7-9” ar fi respins de AT&T sau BSD cron --
       acestea vor să vadă DOAR „1-3” sau „7,8,9”.

       Intervalele pot include „trepte”, astfel încât „1-9/2” este același lucru cu „1,3,5,7,9”..

       Numele lunilor sau ale zilelor săptămânii pot fi specificate prin nume..

       Variabilele de mediu pot fi definite în crontab.. În BSD sau AT&T, mediul transmis proceselor-copil este
       practic cel din „/etc/rc”..

       Comanda de ieșire este trimisă prin poștă proprietarului fișierului crontab (BSD nu poate face acest
       lucru), poate fi trimisă prin poștă unei alte persoane decât proprietarul fișierului crontab (SysV nu
       poate face acest lucru) sau funcția poate fi dezactivată și nu va fi trimis niciun mesaj (SysV nu poate
       face nici acest lucru).

       Toate comenzile „@”care pot apărea în locul primelor cinci câmpuri sunt extensii.

LIMITĂRI

       Demonul cron rulează cu un fus orar definit. În prezent, acesta nu acceptă fusele orare pe utilizator.
       Toate sarcinile: ale sistemului și ale utilizatorului vor fi executate pe baza fusului orar configurat.
       Chiar dacă un utilizator specifică variabila de mediu TZ în crontab, aceasta va afecta doar comenzile
       executate în crontab, nu și executarea sarcinilor crontab în sine. Dacă se dorește specificarea unui
       anumit fus orar pentru sarcinile crontab, se poate verifica data în scriptul-copil, de exemplu:

           # m h  zdl luna zds   comanda

           TZ=UTC
           0 * * * * [ "$(date +\%R)" = 00:00 ] && rulează_vreun_script

       POSIX specifică faptul că câmpurile „ziua din lună” și „ziua din săptămână” trebuie să corespundă cu ora
       curentă dacă oricare dintre ele este un *. Cu toate acestea, această implementare verifică numai dacă
       primul caracter este un *. Acesta este motivul pentru care „0 0 */2 * sun” rulează în fiecare duminică și
       la o dată impară, în timp ce standardul POSIX ar trebui să ruleze în fiecare duminică și la fiecare dată
       impară.

       Sintaxa crontab nu face posibilă definirea tuturor perioadelor posibile pe care le putem imagina. De
       exemplu, nu este simplu să se definească ultima zi lucrătoare a unei luni. Pentru ca o sarcină să fie
       executată într-o perioadă de timp care nu poate fi definită folosind sintaxa crontab, cea mai bună
       abordare ar fi ca programul însuși să verifice informațiile privind data și ora și să continue execuția
       numai dacă perioada corespunde celei dorite.

       În cazul în care programul în sine nu poate efectua verificările, atunci ar fi necesar un script
       ajutător&. Instrumentele utile care ar putea fi utilizate pentru analizarea datelor sunt ncal(1) sau
       calendar(1). De exemplu, pentru a rula un program în ultima sâmbătă a fiecărei luni, ați putea utiliza
       următorul cod de script-ajutător:

           0 4 * * Sat   [ "$(date +\%e)" = "$(LANG=C ncal | sed -n 's/^Sa .* \([0-9]\+\) *$/\1/p')" ] && echo "Ultima sâmbătă" && programul_de_executat

UTILIZAREA EVAL PENTRU A INCLUDE DIVERSE OPȚIUNI DE MEDIU

       Următorul sfat este oferit cu amabilitate de 積丹尼 Dan Jacobson:

           CONTENT_TYPE="text/plain; charset=UTF-8"
           d=eval LANG=zh_TW.UTF-8 w3m -dump
           26 22 16 1-12 * $d https://www.ptt.cc/bbs/transgender/index.html

       nu va funcționa fără eval. Spunând

           d=LANG=zh_TW.UTF-8 w3m -dump

       se va obține

           /bin/sh: LANG=zh_TW.UTF-8: command not found (comanda nu a fost găsită)

DIAGNOSTICARE

       cron cere ca fiecare intrare dintr-un fișier crontab să se încheie cu un caracter de linie nouă. Dacă
       ultima intrare dintr-un fișier crontab nu conține o linie nouă (adică se termină cu EOF), cron va
       considera fișierul crontab (cel puțin parțial) corupt. Un avertisment va fi scris în syslog.

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»; 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 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.

crontab                                          13 iunlie 2025                                       CRONTAB(5)