La herramienta crontab es una herramienta muy práctica para la programación de tareas en especial para bases de datos.
Cada tarea que queremos programar va en una linea del archivo, no se puede en la misma linea programar dos tareas
si lo que vamos a ejecutar es una shell, este archivo debe tener permisos de ejecución
Estructura de la linea crontab:
m h dom mon dow user command
- m corresponde al minuto en que se va a ejecutar el script, el valor va de 0 a 59
- h la hora exacta, se maneja el formato de 24 horas, los valores van de 0 a 23, siendo 0 las 12:00 de la medianoche.
- dom hace referencia al día del mes, por ejemplo se puede especificar 15 si se quiere ejecutar cada dia 15
- mon: hace referencia al mes, valor numérico del 1 al 12
- dow significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat, sun.
- user define el usuario que va a ejecutar el comando, puede ser root, u otro usuario diferente siempre y cuando tenga permisos de ejecución del script.
- command refiere al comando o a la ruta absoluta del script a ejecutar, ejemplo: /home/usuario/scripts/actualizar.sh, si acaso llama a un script este debe ser ejecutable
Me parece mejor exponerlo con ejemplos, si quieres alguna opción especifica escribeme para compartirla:
Ejemplo 1: Tarea que se ejecuta todos los dias a las 5:15 am
15 5 * * * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 2: Tarea que se ejecuta todos los martes a las 6:30 am
30 6 * * 2 * sh /ruta_del_archivo/nombre_archivo.sh
30 6 * * tue * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 3: Tarea que se ejecuta el primer dia de cada mes, a las 4:00 pm(16:00)
00 16 1 * * * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 4: Tarea que se ejecuta el dia 13 de Agosto a las 10:00 pm (22:00)
00 22 13 8 * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 5: Tarea que se ejecuta en el minuto 30 de cada hora del mes de Mayo
30 * 5 * * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 6: Tarea que se ejecuta los dias 1 y 15 de cada mes a las 2:00 a.m
00 2 1,15 * * sh /ruta_del_archivo/nombre_archivo.sh
Ejemplo 6: Tarea que se ejecuta los dias 1 y 15 de los meses Diciembre y Enero a las 2:00 a.m
00 2 1,15 1,12 * sh /ruta_del_archivo/nombre_archivo.sh