GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo automatizar tareas con trabajos cron en Linux

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 : enumerar los crones de otro usuario.
  • crontab -u username -e : editar los crons de otro usuario.

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.
  • sh representa que el script es un script bash y debe ejecutarse desde /bin/bash .
  • /path/to/script.sh especifica la ruta al script.

A continuación se muestra el resumen de la sintaxis del trabajo cron.

*   *   *   *   *  sh /path/to/script/script.sh
|   |   |   |   |              |
|   |   |   |   |      Command or Script to Execute        
|   |   |   |   |
|   |   |   |   |
|   |   |   |   |
|   |   |   | Day of the Week(0-6)
|   |   |   |
|   |   | Month of the Year(1-12)
|   |   |
|   | Day of the Month(1-31)  
|   |
| Hour(0-23)  
|
Min(0-59)

Ejemplos de trabajos cron

A continuación se muestran algunos ejemplos de programación de trabajos cron.

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.

Está bien si no puedes comprender todo esto a la vez. Puedes practicar y generar programaciones cron con el gurú de crontab.

Cómo configurar un trabajo cron

En esta sección, veremos un ejemplo de cómo programar un script simple con un trabajo cron.

  1. Cree un script llamado date-script.sh que imprime la fecha y la hora del sistema y las agrega a un archivo. El guión se muestra a continuación:

2. Haga que el script sea ejecutable otorgándole derechos de ejecución.

chmod 775 date-script.sh

3. Agregue el script en el crontab usando crontab -e .

Aquí, lo hemos programado para que se ejecute por minuto.

4. Verifique la salida del archivo date-out.txt . De acuerdo con el script, la fecha del sistema debe imprimirse en este archivo cada minuto.

Cómo solucionar problemas de crons

Los crones son realmente útiles, pero es posible que no siempre funcionen según lo previsto. Afortunadamente, existen algunos métodos efectivos que puede utilizar para solucionarlos.

  1. Consulta el horario.

Primero, puede intentar verificar la programación establecida para el cron. Puede hacerlo con la sintaxis que vio en las secciones anteriores.

2. Verifique los registros cron.

Primero debe verificar si el cron se ejecutó en el momento previsto o no. Puede verificar esto desde los registros cron ubicados en var/log/cron . En algunas distribuciones, los registros se pueden encontrar en /var/log/syslog

Si hay una entrada en estos registros en el momento correcto, significa que el cron se ejecutó de acuerdo con el programa que configuró.

A continuación se muestran los registros de nuestro ejemplo de trabajo cron. Tenga en cuenta la primera columna que muestra la marca de tiempo. La ruta del script también se menciona al final de la línea.

3. Redirigir la salida de cron a un archivo.

Puede redirigir la salida de un cron a un archivo y verificar el archivo en busca de posibles errores.

# Redirect cron output to a file
* * * * * sh /path/to/script.sh &> log_file.log

Resumiendo

La automatización de tareas, como con los trabajos cron, reduce el trabajo repetitivo que debe realizar. También permite que las máquinas se recuperen automáticamente y funcionen las 24 horas del día sin intervención humana.

La automatización en Linux depende en gran medida de los trabajos cron, por lo que definitivamente deberías aprender crons y experimentar con ellos.

Gracias por leer hasta el final. Los comentarios siempre son bienvenidos.

Si este artículo le resultó útil, compártalo con sus amigos.

¡Conectémonos en Twitter!


Linux
  1. Programación de tareas con el comando cron de Linux

  2. Programación de tareas del sistema con Cron en Linux

  3. Automatice las tareas de los sistemas con crontab en CentOS 7

  4. Cómo programar trabajos de Cron con Crontab

  5. ¿Cómo configurar Automatizar tareas en un VPS de Linux usando Cron?

Cómo administrar de manera fácil y segura los trabajos de Cron en Linux

Cómo asegurar servidores Linux con SE Linux

Cómo ver o enumerar trabajos cron en Linux

Cómo automatizar trabajos diarios en Linux usando (at)

Cron Vs Anacron:Cómo configurar Anacron en Linux (con un ejemplo)

Cómo programar trabajos con Cron en Linux

    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.