Si trabaja en TI, es posible que deba programar varias tareas repetitivas como parte de sus procesos de automatización.
Por ejemplo, puede programar un trabajo en particular para que se ejecute periódicamente en momentos específicos del día. Esto es útil para realizar copias de seguridad diarias, archivar registros mensuales, eliminar archivos semanalmente para crear espacio, etc.
Y si usa Linux como sistema operativo, usará algo llamado trabajo cron para que esto suceda.
¿Qué es un cron?
Cron es una utilidad de programación de trabajos presente en sistemas similares a Unix. El daemon crond habilita la funcionalidad cron y se ejecuta en segundo plano. El cron lee el crontab (tablas cron) para ejecutar scripts predefinidos.
Mediante el uso de una sintaxis específica, puede configurar un trabajo cron para programar secuencias de comandos u otros comandos para que se ejecuten automáticamente.
Para usuarios individuales, el servicio cron verifica el siguiente archivo:/var/spool/cron /crontabs
¿Qué son los trabajos cron en Linux?
Cualquier tarea que programe a través de crons se denomina trabajo cron. Los trabajos de Cron nos ayudan a automatizar nuestras tareas rutinarias, ya sean por hora, por día, por mes o por año.
Ahora, veamos cómo funcionan los trabajos cron.
Cómo controlar el acceso a los crons
Para usar trabajos cron, un administrador debe permitir que se agreguen trabajos cron para los usuarios en el archivo '/etc/cron.allow'.
Si recibe un aviso como este, significa que no tiene permiso para usar cron.
Para permitir que John use crons, incluya su nombre en '/etc/cron.allow'. Esto le permitirá a John crear y editar trabajos cron.
A los usuarios también se les puede negar el acceso al trabajo cron ingresando sus nombres de usuario en el archivo '/etc/cron.d/cron.deny'.
Cómo agregar trabajos cron en Linux
Primero, para usar trabajos cron, deberá verificar el estado del servicio cron. Si cron no está instalado, puede descargarlo fácilmente a través del administrador de paquetes. Solo usa esto para verificar:
# Check cron service on Linux system
sudo systemctl status cron.service
Sintaxis de trabajo cron
Crontabs usa las siguientes banderas para agregar y enumerar trabajos cron.
crontab -e
:edita entradas crontab para agregar, eliminar o editar trabajos cron.crontab -l
:enumera todos los trabajos cron para el usuario actual.crontab -u username -l
:crontab -u username -e
:
Cuando enumere crons, verá algo como esto:
# Cron job example
* * * * * sh /path/to/script.sh
En el ejemplo anterior,
- * * * * * representa minuto(s) hora(s) día(s) mes(es) día(s) de la semana, respectivamente.
Valor | Descripción | |
---|---|---|
Minutos | 0-59 | El comando se ejecutaría en el minuto específico. |
Horas | 0-23 | El comando se ejecutaría a la hora específica. |
Días | 1-31 | Los comandos se ejecutarían en estos días de los meses. |
Meses | 1-12 | El mes en el que se deben ejecutar las tareas. |
Días laborables | 0-6 | Días de la semana en los que se ejecutarían los comandos. Aquí, 0 es domingo. |
Horario | Valor programado |
---|---|
5 0 * 8 * | A las 00:05 de agosto. |
5 4 * * 6 | A las 04:05 del domingo. |
0 22 * * 1-5 | A las 22:00 todos los días de la semana de lunes a viernes. |