Automatizar Linux con crontab de manera fácil y útil
Toda la potencia necesaria para automatizar tareas o ejecutar scripts o aplicaciones es posible mediante el comando crontab
.
La automatización con crontab
se usa por cada usuario del sistema, es decir, cada usuario puede tener su propia automatización independiente.
Para ejecutar el comando crontab
lo llamamos de la siguiente manera.
crontab -e
La primera vez nos solicita que elijamos un editor que por defecto usará nano
, aunque dependerá de la distribución de Linux que se use.
nano crontab for usuario - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
Dentro del archivo podremos poner las sentencias que queremos automatizar en función la sintaxis del comando.
Síntaxis de crontab
.---------------- minuto (0 - 59)
| .------------- hora (0 - 23)
| | .---------- día del mes (1 - 31)
| | | .------- mes (1 - 12)
| | | | .---- día de la semana (0 - 6)
| | | | |
* * * * * comando para ser ejecutado
El comando a ejecutar puede ser una concatenación de comandos
Ejemplos prácticos con crontab
Estos ejemplos son los que irán dentro de crontab
, puestos cada uno en una línea.
El siguiente ejemplo ejecuta el script LXV.sh
, que se encuentra en el directorio /backup/
, a las 6:00 horas todos los lunes de todas las semanas y la información que pudiera mostrar por consola la manda a /dev/null/
para que se destruya y no nos estorbe, siendo esta información de salida cualquier mensaje de error o de información 2>&1
.
Si la salida que nos devuelve el script la quisiéramos guardar para una posterior consulta podemos cambiar 2>&1
por > archivo.log
donde se nos guardaría la posible información que expulsara el script.
* 6 * * 1 /backup/./LXV.sh /dev/null 2>&1
Este ejemplo ejecuta el script todas las horas.
0 * * * * /ruta/al/script/script.sh
Este ejecuta el script todos los días 15 de cada mes a las 0:00 horas.
0 0 15 0 0 /ruta/al/script/script.sh
Un ejemplo bastante más restrictivo, se ejecuta el script a las 14:15 horas el 21 de junio y que sea viernes.
15 14 21 6 5 /ruta/al/script/script.sh
Ver tareas programadas en crontab
Podemos ver las tareas que tenemos programadas ejecutando el comando crontab
con el parámetro -l
.
crontab -l
Borrar todas las tareas crontab
Y si por alguna razón queremos borrar todas las tareas a la vez.
crontab -r