Programación de tareas periódicas usando Cron en Linux
cron
es un programa de Linux que se utiliza para programar un comando o un script para que se ejecute en un momento posterior. También se puede utilizar para programar la ejecución periódica de comandos y scripts. Los programas programados con cron se denominan comúnmente Cron Jobs. Su uso principal es para tareas de administración del sistema, como copias de seguridad periódicas, actualizaciones periódicas de software y otras tareas de mantenimiento similares.
Introducción
cron
se ejecuta como un demonio en Linux, es decir, como un proceso en segundo plano. Permite a los usuarios programar trabajos directamente con el comando crontab, que abre un archivo de configuración llamado Cron File en un editor. Se crean archivos Cron separados para cada usuario.
Creación de un archivo cron y sintaxis básica
El crontab
El comando se puede ejecutar con -mi
marca para editar un archivo Cron existente. Si el archivo aún no existe, se creará. Si el usuario está llamando al comando por primera vez y si hay varios editores de archivos instalados en el sistema Linux, el comando le pedirá al usuario que elija un editor predeterminado de una lista de editores.
Después de elegir el editor, se creará y abrirá un archivo cron para el usuario. Ahora puede especificar trabajos en el archivo.
La sintaxis general para especificar un trabajo cron es:
Básicamente, el se ejecutará en el 'minuto' (0-59), 'hora' (0-23), 'día del mes' (1-31), mes (1-12), día de la semana, (0-7, Para el domingo, se puede usar 0 o 7) en el trabajo cron. Para simplificar, tomemos un ejemplo:
1 2 3 4 5 echo "Hola"
Esto significa el comando echo "Hola"
se ejecutará cada quinto día de la semana (viernes) y cada tercer día del mes, cada cuarto mes del año (abril), a la hora 02:01 (2ª hora, primer minuto).
Si se va a ejecutar el mismo comando todos los días a las 02:01, la sintaxis se verá así:
1 2 * * * echo "Hola"
El *
significa "siempre" o "para todos", por ejemplo. para todos los meses, para todos los días de la semana, etc.
El operador de comando (,
) se puede usar para ingresar una lista de valores cuando la tarea debe repetirse. Por ejemplo:
0 2,3,4 * * * echo "Hola"
Esto ejecutará el programa a las 2 a. M., A las 3 a. M. Y a las 4 a. M., Todos los días.
Similar, un guión-
) operador se puede utilizar para especificar un rango para el que se repetirá la tarea. Por ejemplo:
0-20 2 * * * echo "Hola"
Esto ejecutará el programa a las 02:00, 02:01, 02:02, y así sucesivamente hasta las 02:20.
Finalmente, tenemos la barra /
) operador. Este operador se utiliza para especificar un valor de intervalo según el cual se repetirá la tarea. P.ej. */15
en el campo de minutos significa que la tarea debe repetirse cada 15 minutos. 2-10/2
en el campo de horas especifica que la tarea se repetirá entre las 2 a. m. y las 10 a. m. después de cada intervalo de 2 horas (2 a. m., 4 a. m., 6 a. m., 8 a. m., 10 a. m.).
* / 15 2-10 / 2 * * * echo "Hola"
Una vez que haya realizado la entrada en el archivo Cron, guarde el archivo y salga del editor.
Deberías ver un "Instalar nuevo crontab" mensaje en la terminal después de guardar y salir del archivo crontab.
Macros
Ciertas macros están predefinidas en Cron que especifican algunos intervalos de tiempo comúnmente requeridos, como cada hora, cada día, cada mes, etc.
Para ejecutar una tarea una vez al día al comienzo del día, es decir, a las 00:00, utilice la macro @a diario
. Esto es equivalente a 0 0 * * *
.
Puede poner esto en el archivo Cron de la misma manera que se describió anteriormente.
De manera similar, se pueden usar las otras macros, a saber. @cada hora
(Minuto 0 de cada hora), @mensual
(00:00 del primer día del mes), @semanalmente
(00:00 del primer día de la semana, @anual
(00:00 del primero de enero de cada año), @reiniciar
(en cada inicio de la computadora).
Conclusión
En este artículo, aprendimos cómo agregar Cron Jobs para su ejecución regular en Linux. El uso adecuado de Cron Jobs es útil incluso para las tareas manuales más molestas que enfrenta el usuario, por ejemplo. eliminación periódica de registros antiguos, archivo de todo tipo de datos fríos (datos a los que rara vez se accede), etc.