Programar tareas con Cron

Cron es un servicio en segundo plano que ejecuta los comandos especificados que se encuentran en la crontab. En el crontab se almacenan los comandos que se deben ejecutar junto a las indicaciones de cuando se deben ejecutar

 

Directorios

  • Ficheros crontab del usuario  –> /var/spool/cron/crontabs/usuario
  • Crontab del sistema –> /etc/crontab
  • Usuarios permitidos –> /etc/cron.allow
  • Usuarios denegados –> /etc/cron.deny
  • Almacenar crontabs –> /etc/cron.d

 

Sintaxis

.--------------- minuto (0-59) 
|  .------------ hora (0-23)
|  |  .--------- día del mes (1-31)
|  |  |  .------ mes (1-12) o jan,feb,mar,apr,may,jun,jul... (meses en inglés)
|  |  |  |  .--- día de la semana (0-6) (domingo=0 ó 7) o sun,mon,tue,wed,thu,fri,sat (días en inglés) 
|  |  |  |  |
*  *  *  *  *  comando a ejecutar

 

Ejemplo

Todos los días a las 6 de la mañana y a las 7 de la tarde

0 6,19 * * * jose /home/jose/update.sh


 

Uso

Antes de agregar una tarea vamos a crear un script simple al que llamaremos desde cron.

Creamos un archivo con el siguiente contenido y lo guardamos como update.sh en la carpeta /home/jose
#!/bin/bash
echo Texto de Prueba >> /home/jose/prueba.txt

Le damos permisos:

chmod 777 /home/jose/update.sh

 

Ahora abrimos el fichero crontab:

nano /etc/cron.d/tarea1

 

Añadimos esta línea que hará que el usuario jose el minuto 16 de todas las horas, de todos los días del mes, de todas las semanas ejecutará ese comando.

16 * * * * jose /home/jose/update.sh