Hay ciertas tareas que nos gustaría se ejecutaran de forma automática sin necesidad de intervención por nuestra parte, esto en linux es muy sencillo sin instalar software adicional ya que por defecto solemos disponer de “cron” un programador de tareas que ejecturá el comando o script con la lista de acciones en el momento que le hayamos indicado.
Programar tareas mediante Cron
Aprendiendo a usar Cron para programar tareas
“Cron” es un demonio (proceso en segundo plano) que ejecuta comandos o scripts según la programación personalizada que le dé el usuario, y viene de forma nativa en la mayoría de las distribuciones Linux.
Para programar tareas se utiliza una herramienta llamada “crontab”, el cual es una manera rápida de editar el archivo de texto para configurar “cron” y poder indicar el momento en que ejecuta un comando o script y el usuario que lo hace.
Los ficheros crontab para cada usuario se guardan en la siguiente ruta con el nombre de cada usuario que haya programado una tarea /var/spool/cron/crontabs
1 – Entrar a crontab
Para entrar a configurar el archivo “crontab” con el usuario actual simplemente tenemos que ejecutar en una consola este comando:
crontab -e
2 – Aprendiendo la sintaxis
Ahora veremos que significa cada parte para saber que debemos tocar al programar una tarea.
La primera vez nos pedirá elegir el editor de texto que deseamos utilizar, personalmente recomiendo “nano”
La sintaxis para determinar el momento y la tarea es la siguiente:
“minutos” “horas” “día del mes” “día de la semana” “usuario” “comando o script”
Un ejemplo de tarea programada donde se ejecutaría todos los domingos a las 23:55 horas el script llamado “script1.sh” como usuario root.
55 23 * * 0 root /home/usuario/script1.sh
3 – Sintaxis al detalle
Desglosando la sintaxis para el archivo crontab (m h dom dow user command), se pueden indicar varios valores separados por coma “,” e incluso rango de valor separados por guión
- m –> Corresponde al minuto en que se ejecuta, el valor varia de 0 a 59
- h –> La hora en formato de 24 horas, el valor abarca desde 0 a 23
- Dom –> Día del mes, del 1 al 31 son los valores permitidos
- dow –> Se refiere al día de la semana, valor del 0 al 7 donde 0 y 7 son domingo. También se puede utilizar las 3 primeras letras del día de la semana en inglés.
- User –> Define cual es el usuario que ejecutará ese comando, recuerda que tiene que tener permiso de ejecución para el script
- Command –> Colocaremos la ruta absoluta del script a ejecutar (partiendo de la raíz “/”) o el comando que deseemos.
Es posible que existan valores que no nos interesen establecer, estos lo remarcaremos con un asterisco “*”

4 – Ejemplo de Script
Este script realiza una copia de seguridad comprimida del directorio “TRABAJO” dentro de Documentos. La copia se hará incluyendo la fecha del sistema en el nombre y dejará comprimido en formato tar. Luego moverá la copia al escritorio:
cd /home/usuario/Documentos
tar -cvf copia_seguridad_trabajo`date +%d%b%y`.tar TRABAJO
mv copia_seguridad_trabajo*.tar /home/usuario/Escritorio
Videotutoriales para usar Cron