GNU/Linux >> Tutoriales Linux >  >> Linux

CentOS / RHEL:Guía para principiantes de cron

Cron es un programador de trabajos basado en el tiempo, está configurado para ejecutar comandos en momentos o intervalos determinados. Cada usuario tiene una tabla cron que define qué ejecutar y en qué intervalo. crontab El comando se usa para crear, modificar y ver trabajos cron.

Archivos y directorios de configuración

– Cron está controlado por un conjunto de archivos llamados crontabs.
– El archivo maestro está en /etc/crontab , junto con archivos crontab para los usuarios en /var/spool/cron/ . En el último directorio, los archivos reciben el mismo nombre que el nombre de usuario de un usuario.
– El archivo /etc/crontab ejecuta automáticamente elementos en varios subdirectorios en períodos regulares. Los scripts se ubican en varios directorios:/etc/cron.* se ejecutan según el intervalo de tiempo que se indica a continuación. Todos los scripts en estos directorios se ejecutan con el privilegio de root.

Directorio Tiempo
/etc/cron.horaria Primer minuto de cada hora
/etc/cron.daily Entre las 3:05 a. m. y las 10:55 p. m. todos los días
/etc/cron.weekly Entre las 3:25 AM y las 11:10 PM después de 7 días desde la última ejecución
/etc/cron.monthly Entre las 3:45 a. m. y las 11:30 p. m. después de un mes desde la última ejecución

– Todo lo que el administrador del sistema debe hacer es colocar un script de shell o un enlace a un ejecutable en uno de los directorios y se ejecutará automáticamente en el momento apropiado.

sintaxis crontab

Configurar un crontab a nivel de usuario es algo diferente. Los archivos en /var/spool/cron no se editan directamente. En su lugar, se utiliza un programa llamado crontab para manipularlos. La sintaxis del comando crontab es:

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u [user]  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n [host]  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x [mask]  enable debugging

Cómo editar un crontab

La mejor manera de editar un crontab es usando el comando crontab -e . Otra forma de hacerlo es:

1. su to the user whose cron you want to change
2. crontab -l > file      [ copy the crontab to a file ].
3. vi file                [ make changes to the file as per your need ]
4. crontab file           [ this makes the "file" as new crontab ]

No hay necesidad de reiniciar el demonio cron después de esto.

Interpretación de los campos de fecha y hora

Cada comando cron tiene 5 campos de hora y fecha, seguidos de un nombre de usuario [opcional], y si este es el archivo crontab del sistema, estará seguido de un comando. Los comandos se ejecutan cuando la hora especificada por los campos de hora/fecha coincide con la hora actual.

field          allowed values
-----          --------------                  
minute         0-59                  
hour           0-23                  
day of month   0-31                  
month          0-12 (or names, see below)                  
day of week    0-7 (0 or 7 is Sun, or use names)

Un campo puede ser un asterisco (*), que siempre representa del primero al último . Entonces, cuando se usa en el campo del mes, significa todos los meses desde el 0 (enero) hasta el 12 (diciembre).

Ejemplo de trabajo cron:

# Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 0  1  *  *  *  [user-name] [command to be executed]

Ejemplos de configuración de trabajos cron

A continuación se muestran algunos ejemplos de usos de crontab para comprender cómo programar una tarea:
Ejemplo: ejecutando un trabajo cinco minutos después de la medianoche, todos los días:

5 0 *  *  *     /home/oracle/scan_asm_devices.sh

Ejemplo: ejecutando un trabajo a las 5:30 p. m. el día 1 de cada mes:

30 17 1  *  *   mail -s "It's 5:30pm"

Ejemplo: Ejecutar un trabajo a las 4:05 todos los lunes.

5  4  *  *  mon     echo "run at 5 after 4 every monday"

Control de acceso de usuarios

– Para permitir que los usuarios accedan a los crontabs, se pueden usar los archivos /etc/cron.allow y /etc/cron.deny para permitir o denegar el acceso respectivamente. Simplemente coloque un nombre de usuario en cualquiera de los 2 archivos para permitir o denegar el acceso a crontab.
– Si existe el archivo /etc/cron.allow, entonces no se utilizará el archivo /etc/cron.deny.
– En la instalación predeterminada, solo existirá un archivo vacío /etc/cron.deny.
– Si ninguno de los archivos existe, solo el usuario root tendrá acceso para programar un trabajo a través de cron.


Linux
  1. Cron Job:una guía completa para principiantes 2022

  2. CentOS/RHEL 7:Guía para principiantes de objetivos de systemd (reemplazo de los niveles de ejecución de inicio de SysV)

  3. CentOS / RHEL 7:Guía para principiantes de systemd

  4. Guía para principiantes para ajustar perfiles en CentOS/RHEL

  5. Guía para principiantes sobre la gestión de secuencias de módulos de paquetes en CentOS/RHEL 8

Programación de trabajos de Cron con Crontab

Una guía para principiantes de LVM

Una guía para principiantes sobre los trabajos de Cron

CentOS / RHEL 7:Guía para principiantes de unidades de servicio systemd

Guía completa para configurar iSCSI en CentOS / RHEL 7

CentOS / RHEL:guía de solución de problemas de iptables