En Debian podem programar tasques per a que s’executin en una certa hora o data determinada. S’utilitza la comanda CRONTAB que és dels sistemes UNIX. Aquesta comanda ens permet executar ja sigui scripts o bé programes amb interfície gràfica.

Ara veurem que el seu ús és molt senzill.

El primer que farem serà veure si tenim alguna tasca programada. Per fer-ho executem en un terminal: (no cal ser root, ja que qualsevol usuari pot programar una tasca, tot i que amb usuari root podem fer més coses!)

root@debian$ crontab -l

I ens apareixerà les tasques programades, així com les instruccions a seguir si volem utilitzar el crontab

captura-de-2016-12-07-001858

Si volem editar les tasques programades haurem de fer:

$ crontab -e

I ens apareix el mateix document però en edició. El format de programació de les tasques tenen la següent sintaxis:
* * * * * /bin/prova.sh

On els asterisc, en aquest cas i en ordre d’esquerra a dreta indiquen:

  1.  Minuts: de 0 a 59
  2. Hores: de 0 a 23
  3. Dia del mes: de 1 a 31
  4. Mes: de 1 a 12
  5. Dia de la setmana: de 0 a 6, essent 0 el diumenge

Si deixem l’asterisc vol dir qualsevol valor del que pot ser.

Per exemple, si volem programar un script que s’executi cada dia a les 21:30 de la nit, posaríem  el següent:

30 21 * * * /bin/prova.sh

Si el volem executar de dilluns a divendres i a la mateixa hora, podem utilitzar intervals de temps, i llavors posaríem:

30 21 * * 1-5 /bin/prova.sh

Un altre cas més complex seria si el volem executar en intervals de temps des de les 21 hores amb intervals de 15 minuts durant una hora, llavors posaríem:

0,15,30,45 21 * * 1-5 /bin/prova.sh

Paraules reservades

Moltes vegades ens cal una programació més simple i llavors crontab té un conjunt de paraules reservades que ens facilita la feina. Serien les següents:

  • @reboot: s’executa la tasca un sol cop quan s’inicia
  • @yearly/ @annually: s’executa cada any
  • @monthly: s’executa un cop al mes
  • @weekly: s’executa un cop a la setmana
  • @daily/ @midnight: s’executa un cop al dia
  • @hourly: s’executa cada hora

Per exemple, si volem executar l’script un cop al mes, hauríem de posar:

root@debian$ @monthly /bin/prova.sh

Finalment, si volem esborrar les tasques, posarem en el terminal:

root@debian$ crontab -d

Si volem definir el directori d’un usuari (el directori ha de tenir permisos d’escriptura i execució), posarem:

root@debian$ crontab -c directori

Si ens interessa veure el crontab d’un altre usuari (només ho pot fer com a administrador), posarem:

root@debian$ crontab -u usuari

Exemples:

root@debian$ sudo crontab -l -u root
root@debian$ sudo crontab -e usuari2

Per acabar, si volem executar un programa amb interfície gràfica, com per exemple aMule, posaríem en el crontab:

30 21 * * 1-5 DISPLAY=:0.0 /usr/bin/amule

Això ens executaria l’aMule a les 21:30 hores dilluns a divendres, amb entorn gràfic

Esperem que us hagi servit aquesta breu introducció al programador de tasques crontab

Comparteix això: