crontab es una pequeña aplicación de uso por consola que permite programar la ejecución automática y repetitiva de comandos, línea de comandos y scripts eligiendo el minuto, la hora, el día de la semana, el día del mes y el mes en que se ejecutarán. Suele ir de serie en casi todas las distribuciones GNU/Linux, pero si no la lleva se puede instalar de la siguiente manera:
Código:
$ sudo apt-get install cron
USO:
- Para visualizar las programaciones grabadas:
Código:
$ crontab -l
NOTA: si no hay nada grabado aparecerá el mensaje "no crontab for usuario"
- Para editar el archivo que contiene las programaciones:
Código:
$ crontab -e
NOTA: si es la primera vez que se ejecuta esta opción aparecerá un diálogo para solicitar qué editor de texto por consola se desea usar para la edición. Solamente se pueden usar los editores que se muestran en el diálogo.El segundo editor que aparece (nano) es el recomendado por su facilidad de uso.
- Una vez ejecutada la edición de crontab con nano aparecerá algo así:
nano se usa con las flechas del teclado y los botones ENTER, Inicio y Fin. Más adelante se explica cómo guardar el archivo editado y cómo salir del editor.
- Para añadir una nueva programación habrá que escribirla debajo de la línea '# m h dom mon dow command' según el patrón siguiente:
———————————————————————————————————————–
* * * * * [comando_o_script_a_ejecutar]
- - - - -
| | | | |
| | | | +—– día de la semana (0 – 6) (Domingo=0)
| | | +——- mes (1 – 12)
| | +——— día del mes (1 – 31)
| +———– hora (0 – 23)
+————- minuto (0 – 59)
———————————————————————————————————————–
- O mostrado de otra manera:
———————————————————————————————————————–
Código:
(nº minuto{de 0 a 59}) (nº hora{de 0 a 23}) (nº día del mes{de 1 a 31}) (nº mes{de 1 a 12}) (nº día de la semana{de 0 a 6}) [comando_o_script_a_ejecutar]
———————————————————————————————————————–
EJEMPLOS DE PROGRAMACIÓN:
- Ejecutar un comando o script todos los días en el minuto 30 de todas las horas:
Código:
30 * * * * [comando_o_script_a_ejecutar]
- Ejecutar un comando o script todos los días a las 10.30 h de la mañana:
Código:
30 10 * * * [comando_o_script_a_ejecutar]
- Ejecutar un comando o script con entorno gráfico todos los días a las 12 h del mediodía:
Código:
* 12 * * * [color=rgb(0,0,0)!important]DISPLAY[/color]=:0 [comando_o_script_a_ejecutar]
- Ejecutar un comando o script todos los días a las 10 h de la mañana:
Código:
* 10 * * * [comando_o_script_a_ejecutar]
- Ejecutar un comando o script todos los días a las 10.30 h de la mañana y a las 8.30 h de la tarde:
Código:
30 10,20 * * * [comando_o_script_a_ejecutar]
- Ejecutar un comando o script todos los viernes a la 1 h de la tarde:
Código:
* 13 * * 5 [comando_o_script_a_ejecutar]
- Ejecutar un comando o script de lunes a viernes a las 11 h de la noche:
Código:
* 23 * * 1-5 [comando_o_script_a_ejecutar]
- Ejecutar un comando o script cada 2 horas:
Código:
* */2 * * * [comando_o_script_a_ejecutar]
NOTA: encima o debajo de las líneas de programación puede escribirse opcionalmente un comentario o título que vaya precedido del símbolo "#"
- EJEMPLO PRÁCTICO: usar Wget para guardar un programa de radio en streaming todos los viernes a partir de las 20 h y terminar la grabación cerrando Wget a las 22 h:
- Una vez añadidas o editadas todas las programaciones deseadas guardar el archivo de crontab pulsando CONTROL+o seguido de ENTER y pulsar CONTROL+x para salir del editor
- Para borrar todo el contenido programado de crontab:
Código:
$ crontab -r
[size=24]agradecer no cuesta nada[/size]