GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo automatizar tareas en Linux usando Crontab

A veces, puede tener tareas que deben realizarse de forma regular o en ciertos intervalos predefinidos. Dichas tareas incluyen la copia de seguridad de las bases de datos, la actualización del sistema, la realización de reinicios periódicos, etc. Estas tareas en Linux se denominan trabajos cron (Crontab). Los trabajos cron se utilizan para la automatización de tareas que son útiles y ayudan a simplificar la ejecución de tareas repetitivas y, a veces, mundanas. Cron es un demonio que le permite programar estos trabajos que luego se llevan a cabo a intervalos específicos. En este tutorial, aprenderá cómo programar trabajos utilizando trabajos cron.

El archivo Crontab

Un archivo crontab, también conocido como tabla cron , es un archivo de texto simple que contiene reglas o comandos que especifican el intervalo de tiempo de ejecución de una tarea. Hay dos categorías de archivos crontab:

1)  Archivo crontab de todo el sistema

Por lo general, los utilizan los servicios de Linux y las aplicaciones críticas que requieren privilegios de root. El archivo crontab del sistema se encuentra en /etc/crontab y solo puede ser accedido y editado por el usuario root. Por lo general, se usa para la configuración de demonios de todo el sistema. El archivo crontab se ve como se muestra:

2) Archivos crontab creados por el usuario

Los usuarios de Linux también pueden crear sus propios trabajos cron con la ayuda del comando crontab. Los trabajos cron creados se ejecutarán como el usuario que los creó.

Todos los trabajos cron se almacenan en /var/spool/cron (para distribuciones RHEL y CentOS) y /var/spool/cron/crontabs (para distribuciones Debian y Ubuntu), los trabajos cron se enumeran utilizando el nombre de usuario del usuario que creó el trabajo cron

El demonio cron se ejecuta silenciosamente en segundo plano comprobando /etc/crontab archivo y /var/spool/cron y /etc/cron.d*/ directorios

El crontab El comando se usa para editar archivos cron. Echemos un vistazo a la anatomía de un archivo crontab.

La anatomía de un archivo crontab

Antes de continuar, es importante que primero exploremos cómo se ve un archivo crontab. La sintaxis básica de un archivo crontab consta de 5 columnas representadas por asteriscos seguidas del comando a ejecutar.

*    *    *    *    *    comando

Este formato también se puede representar como se muestra a continuación:

m h d moy comando dow

O

m h d moy dow /ruta/al/script

Expliquemos cada entrada

  • m :Esto representa minutos. Se especifica de 0 a 59
  • h :Esto indica la hora especificada de 0 a 23
  • d :  Esto representa el día del mes. Especificado entre 1 y 31`
  • muy :Este es el mes del año. Se especifica entre 1 y 12
  • doy :  Este es el día de la semana. Se especifica entre 0 y 6 donde 0 =Domingo
  • Comando :Este es el comando que se ejecutará, por ejemplo, comando de copia de seguridad, reinicio y copia

Gestionar trabajos cron

Habiendo visto la arquitectura de un archivo crontab, veamos cómo puede crear, editar y eliminar trabajos cron

Creación de trabajos cron

Para crear o editar un trabajo cron como usuario raíz, ejecute el comando

# crontab -e

Para crear un trabajo cron o programar una tarea como otro usuario, use la sintaxis

# crontab -u nombre de usuario -e

Por ejemplo, para ejecutar un trabajo cron como usuario Pradeep, emita el comando:

# crontab -u Pradeep -e

Si no hay un archivo crontab preexistente, obtendrá un documento de texto en blanco. Si existía un archivo crontab, la opción  -e permite  editar el archivo,

Listado de archivos crontab

Para ver los trabajos cron que se han creado, simplemente pase la opción -l como se muestra

# crontab -l

Eliminar un archivo crontab

Para eliminar un archivo cron, simplemente ejecute crontab -e y elimine o la línea del trabajo cron que desee y guarde el archivo.

Para eliminar todos los trabajos cron, ejecute el comando:

# crontab -r

Dicho esto, echemos un vistazo a las diferentes formas en que puede programar tareas

Ejemplos de crontab en Tareas de programación.

Todos los trabajos cron tienen un encabezado shebang como se muestra

#!/bin/bash

Esto indica el shell que está utilizando, que, en este caso, es shell bash.

A continuación, especifique el intervalo en el que desea programar las tareas utilizando las entradas de trabajos cron que especificamos anteriormente.

Para reiniciar un sistema diariamente a las 12:30 p. m., use la sintaxis:

30  12 *  *  * /sbin/reiniciar

Para programar el reinicio a las 4:00 am use la sintaxis:

0  4  *  *  *  /sbin/reiniciar

NOTA: El asterisco * se usa para hacer coincidir todos los registros

Para ejecutar un script dos veces al día, por ejemplo, a las 4:00 am y a las 4:00 pm, use la sintaxis.

0  4,16  *  *  *  /ruta/al/script

Para programar una tarea cron para que se ejecute todos los viernes a las 5:00 p. m., use la sintaxis:

0  17  *  *  Vie  /ruta/hacia/secuencia de comandos

O

0 17  *  *  *  5  /ruta/al/script

Si desea ejecutar su trabajo cron cada 30 minutos, use:

*/30  *  *  *  * /ruta/al/script

Para programar que cron se ejecute cada 5 horas, ejecute

*  */5  *  *  *  /ruta/al/script

Para ejecutar un script en días seleccionados, por ejemplo, miércoles y viernes a las 6:00 p. m., ejecute:

0  18  *  *  mié,vie  /ruta/hacia/secuencia de comandos

Para programar múltiples tareas para usar un solo trabajo cron, separe las tareas usando un punto y coma, por ejemplo:

*  *  *  *  *  /ruta/al/script1; /ruta/al/script2

Uso de cadenas especiales para ahorrar tiempo al escribir trabajos cron

Algunos de los trabajos cron se pueden configurar fácilmente usando cadenas especiales que corresponden a ciertos intervalos de tiempo. Por ejemplo,

1)  @hora por marca de tiempo corresponde a  0 * * * *

Ejecutará una tarea en el primer minuto de cada hora.

@hourly /path/to/script

2) @daily timestamp es equivalente a  0 0 * * *

Ejecuta una tarea en el primer minuto de cada día (medianoche). Es útil cuando se ejecutan trabajos diarios.

@daily /ruta/al/script

3) @weekly   timestamp es el equivalente a  0 0 1 * mon

Ejecuta un trabajo cron en el primer minuto de cada semana donde una semana comienza el lunes.

@weekly /ruta/al/script

3) @monthly es similar a la entrada 0 0 1 * *

Realiza una tarea en el primer minuto del primer día del mes.

@mensual /ruta/al/script

4) @anual corresponde a 0 0 1 1 *

Ejecuta una tarea en el primer minuto de cada año y es útil para enviar saludos de Año Nuevo 🙂

@mensual /ruta/al/script

Restricciones de Crontab

Como usuario de Linux, puede controlar quién tiene derecho a usar el comando crontab. Esto es posible utilizando /etc/cron.deny y /etc/cron.allow expediente. De manera predeterminada, solo existe el archivo /etc/cron.deny y no contiene ninguna entrada. Para restringir que un usuario use la utilidad crontab, simplemente agregue el nombre de usuario de un usuario al archivo. Cuando se agrega un usuario a este archivo y el usuario intenta ejecutar el comando crontab, encontrará el siguiente error.

Para permitir que el usuario continúe usando la utilidad crontab, simplemente elimine el nombre de usuario del archivo /etc/cron.deny.

Si el archivo /etc/cron.allow está presente, solo los usuarios enumerados en el archivo pueden acceder y usar la utilidad crontab.

Si ninguno de los archivos existe, solo el usuario root tendrá privilegios para usar el comando crontab.

Copia de seguridad de las entradas crontab

Siempre se recomienda hacer una copia de seguridad de sus entradas de crontab. Para ello, utilice la sintaxis

# crontab -l> /ruta/al/archivo.txt

Por ejemplo,

# crontab -l > /home/james/backup.txt

Comprobación de registros cron

Los registros de cron se almacenan en el archivo /var/log/cron. Para ver los registros cron, ejecute el comando:

# cat /var/log/cron

Para ver registros en vivo, use el comando tail como se muestra:

# tail -f /var/log/cron

Conclusión

En esta guía, aprendió cómo crear trabajos cron para automatizar tareas repetitivas, cómo realizar copias de seguridad y cómo ver los registros cron. Esperamos que este artículo proporcione información útil con respecto a los trabajos cron. No dude en compartir sus opiniones y comentarios.


Linux
  1. Consejos de Linux para usar cron para programar tareas

  2. Cómo usar cron en Linux

  3. Cómo uso cron en Linux

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

  5. Automatice las tareas del sistema usando Crontab en Ubuntu

¿Qué es Crontab y cómo automatizar tareas en Linux con Crontab?

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

Cómo automatizar tareas con trabajos cron en Linux

Cómo programar tareas en Ubuntu 20.04 usando Crontab

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

Cómo programar trabajos con Cron en Linux