Programarea task-urilor Linux

Pentru că mulți dintre studenți au nevoie, în lucrarea de licență, să automatizeze niște procese prin rularea autonomă, la intervale regulate a unor scripturi PHP, m-am hotărât să descriu pe scurt serviciul cron al SO Linux.
Serviciul cron execută un program la intervale de timp specificate în tabela crontab. Dacă nu ați utilizat niciodată serviciul, tabela nu există, trebuie creată cu comanda: crontab -e. Evident că faceți asta din consolă sau remote, cu PuTTY. Fiecare utilizator are propria tabela crontab.
Tabela se va deschide cu editorul implicit al Linux (vi sau pico/nano), tabelă care este goală dacă nu ați mai utilizat serviciul până atunci. Pentru fiecare script pe care doriți să îl rulați scrieți câte o linie de forma:
* * * * * /home/user/public_html/cale/script.php
unde tot ceea ce urmează după ultimul asterisc reprezintă calea absolută către scriptul care trebuie executat.
Semnificația asteriscurilor, de la stânga la dreapta, este:

  • minutul (de la 0 la 59)
  • ora (de la 0 la 23)
  • ziua lunii (de la 1 la 31)
  • luna (de la 1 la 12)
  • ziua săptămânii (de la 0 la 6) (0=duminică)

Dacă lăsați asterisc pe o poziție, asta înseamnă orice valoare pentru semnificația poziției (vezi exemplele de mai jos). După ce ați terminat editarea, închideți editorul cu comenzile specifice (Ctrl + X urmat de Y pentru pico/nano, :wq pentur vi)

Exemple

0 1 * * 5 /home/user/public_html/cale/script.php
Execută scriptul la ora 1 a fiecărei zile de vineri
0 1 * * 0,6 /home/user/public_html/cale/script.php
Execută scriptul la ora 1 a fiecărei zile de sâmbătă și duminică
10 * 1 * * /home/user/public_html/cale/script.php
Execută scriptul la minutul 10 al fiecărei ore din prima zi a lunii
0,10,20,30,40,50 * * * * /home/user/public_html/cale/script.php sau
*/10 * * * * /home/user/public_html/cale/script.php
Execută scriptul din 10 în 10 minute.

Comentați liniile care nu trebuie executate cu semnul #.
Pentru a vizualiza tabela crontab, scrieți comanda crontab -l.

# 10 * 1 * * /home/user/public_html/cale/script.php
Dacă scriptul trebuie rulat cu niște parametri proveniți din variabilele de mediu ale serverului, atunci adresarea scriptului trebuie făcută prin URL-ul acestuia, cu parametri transmiși prin metode GET. Adresarea prin URL se face utilizând un program utilitar curl  sau Wget. Dar despre asta,în altă postare.

One thought on “Programarea task-urilor Linux”

Leave a Reply

Your email address will not be published.