GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo programar trabajos con Cron en Linux

Descubrirá que hay muchas tareas que deben llevarse a cabo regularmente en su sistema Linux. Por ejemplo, es posible que necesite actualizar una base de datos o hacer una copia de seguridad de los datos de los usuarios en el directorio /home/. Si bien podría ejecutar estas tareas manualmente, sería más eficiente (y más confiable) si configurara el sistema Linux para que las ejecute automáticamente.

Una opción para hacer esto es usar cron. El demonio cron (/usr/sbin/cron) le permite programar trabajos que se llevarán a cabo en un horario regular.

Sintaxis del archivo crontab

El demonio cron está instalado y activado de forma predeterminada en los sistemas Linux. Una vez por minuto, comprueba si se han definido trabajos para la hora actual. El demonio cron usa un archivo llamado crontab que contiene una lista de trabajos y cuándo se van a ejecutar. Existe un archivo crontab para todo el sistema Linux. Cada usuario del sistema también puede definir su propio archivo crontab.

Cada línea en un archivo crontab define un solo trabajo cron. Los primeros cinco campos (separados por espacios en blanco, espacios o tabuladores) definen cuándo
se debe ejecutar el trabajo cron. Usan la siguiente sintaxis:

Número de campo Etiqueta de campo Rango
1 Minutos 0-59
2 Horas 0-23
3 Día del mes 1-31
4 Mes 1-12
5 Día de la semana 0-7

En un archivo crontab de usuario, los campos subsiguientes (campo seis en adelante) especifican el comando y su opción, si la hay, para ejecutar. En un archivo crontab del sistema, el sexto campo especifica el usuario que se usará para ejecutar el comando en los campos restantes (campo siete y más).

El demonio cron puede ejecutar cualquier comando o script de shell. Sin embargo, no hay interacción del usuario disponible cuando se ejecuta el comando o el script de shell.

Las siguientes son pautas para configurar estos campos:

  • Si desea que un trabajo se ejecute cada minuto, hora, día o mes, escriba un asterisco (*) en el campo correspondiente.
  • Puede incluir varias entradas en un campo en una lista separadas por comas.
  • Puede especificar un rango con valores iniciales y finales separados por un guión.
  • Puede configurar pasos de tiempo con /n (donde n representa el tamaño del paso).
  • Puede especificar meses y días de la semana usando las primeras tres letras de sus nombres (por ejemplo, MON, TUE, JAN, FEB). Las letras no distinguen entre mayúsculas y minúsculas. Sin embargo, cuando usa letras, no puede usar rangos o listas.
  • Los números que representan los días de la semana comienzan en 0 para el domingo y se ejecutan durante toda la semana de forma consecutiva, con 7 representando el domingo nuevamente. Por ejemplo, 3 es miércoles y 6 es sábado.

Definición de trabajos de usuario

Los usuarios crean y mantienen sus propios archivos crontab mediante el comando crontab. Las siguientes opciones se pueden utilizar con el comando crontab:

Opción Descripción
crontab -e Crea o edita trabajos. Se utiliza el editor vi.
archivo crontab Reemplaza cualquier archivo crontab existente para el usuario actual con el archivo especificado, asumiendo que el archivo contiene una lista de trabajos usando la sintaxis correcta.
crontab -l Muestra trabajos actuales.
crontab -r Elimina todos los trabajos.

Por ejemplo, suponga que desea definir un trabajo cron que copia el contenido del directorio de inicio de su usuario en una unidad USB externa montada en /media/USB todas las noches a las 5:05 p. m. Tendrías que hacer lo siguiente:

1. Abra una sesión de terminal.

2. En el indicador de shell, ingrese 'crontab -e'.

# crontab -e

Se crea un archivo crontab en blanco para su usuario si es la primera vez que define un trabajo cron.

3. Presione la tecla I, luego ingrese lo siguiente:

5 17 * * * cp ~/* /media/USB

4. Presione Esc, luego ingrese ':wq!'.

5. Puede especificar qué usuarios pueden crear trabajos cron y cuáles no creando los siguientes dos archivos:

  1. /etc/cron.permitir :los usuarios enumerados en este archivo pueden crear trabajos cron.
  2. /etc/cron.deny :Los usuarios que no aparecen en este archivo pueden crear trabajos cron.

Si existe el archivo /etc/cron.allow, es el único archivo evaluado; /etc/cron.deny será ignorado en esta situación. Si ninguno de estos archivos existe, solo el usuario raíz puede definir trabajos cron de usuario.


Linux
  1. Cómo usar cron en Linux

  2. Cómo programar trabajos de Cron con Crontab

  3. Cómo programar trabajos con el comando 'at' en Linux

  4. ¿Cómo escribir un archivo con C en Linux?

  5. Recupere trabajos cron eliminados accidentalmente con crontab -r

Cómo ver o enumerar trabajos cron en Linux

Cron Jobs y Crontab en Linux explicados

Entendiendo Crontab en Linux con ejemplos

Programar trabajos en Linux con el comando 'at'

Cómo abordar los nombres de archivo con espacios en Linux

10 ejemplos útiles de cron para programar trabajos en Linux