Manuales para la línea de comandos

Man » Manual de cron en línea - documentación detallada en línea para la página de manual de cron

🌍
cron - daemonio para ejecutar comandos programados (Vixie Cron)

SINOPSIS

cron [-f] [-l] [-L nivel_registro] [-n fqdn] [-x indicadores_depuración]

cron [-N]

DESCRIPCIÓN

cron se invoca directamente mediante systemd(1) al ingresar a los niveles de ejecución multiusuario.

OPCIONES

-f

Mantenerse en modo de primer plano, no convertirse en un daemon.

-l

Habilitar nombres compatibles con LSB para los archivos en /etc/cron.d. Sin embargo, esta configuración no afecta el análisis de los archivos en /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly o /etc/cron.monthly.

-n fqdn

Incluir el FQDN en el asunto al enviar correos. De forma predeterminada, cron abrevia el nombre de host.

-N

Ejecutar los trabajos de cron ahora, de inmediato y salir. Esta opción es útil para realizar pruebas.

-L nivel_registro

Indicar a cron qué registrar sobre los trabajos (los errores se registran independientemente de este valor) como la suma de los siguientes valores:

1   registrará el inicio de todos los trabajos de cron

2   registrará el final de todos los trabajos de cron

4   registrará todos los trabajos fallidos (estado de salida != 0)

8   registrará el número de proceso de todos los trabajos de cron

El valor predeterminado es registrar el inicio de todos los trabajos (1). El registro se desactivará si nivel_registro se establece en cero (0). Un valor de quince (15) seleccionará todas las opciones.

-x indicadores_depuración

Indicar a cron que sea más detallado y muestre información de depuración; indicadores_depuración es la suma de esos valores:

1   "ext": ...

2   "sch": ...

4   "proc": ...

8   "pars": ...

16  "load": ..

32  "misc": ...

64  "test": ...

128 "bit": ...

NOTAS

cron busca en su área de spool (/var/spool/cron/crontabs/) archivos crontab (que tienen el nombre de las cuentas en /etc/passwd); los crontabs encontrados se cargan en la memoria. Tenga en cuenta que los crontabs en este directorio no deben accederse directamente; el comando [crontab]({filename}../../crontab)(1) debe usarse para acceder y actualizarlos.

cron también lee /etc/crontab, que tiene un formato ligeramente diferente (consulte crontab(5)). En Debian, el contenido de /etc/crontab se define previamente para ejecutar programas en /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly. Esta configuración es específica de Debian, consulte la nota en DEBIAN ESPECÍFICO a continuación.

Además, en Debian, cron lee los archivos en el directorio /etc/cron.d. cron trata los archivos en /etc/cron.d de la misma manera que el archivo /etc/crontab (siguen el formato especial de ese archivo, es decir, incluyen el campo de usuario). Sin embargo, son independientes de /etc/crontab: no heredan, por ejemplo, la configuración de variables de entorno de este último. Este cambio es específico de Debian, consulte la nota en DEBIAN ESPECÍFICO a continuación.

Al igual que /etc/crontab, los archivos en el directorio /etc/cron.d se supervisan para detectar cambios. El administrador del sistema puede crear trabajos cron en /etc/cron.d/ con nombres de archivo como "local" o "local-foo".


/etc/crontab y los archivos en /etc/cron.d deben ser propiedad de root y no deben ser
modificables por el grupo u otros usuarios. En contraste con el área de spool, los archivos en
/etc/cron.d o los archivos en /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y
/etc/cron.monthly también pueden ser enlaces simbólicos, siempre y cuando tanto el enlace simbólico
como el archivo al que apunta sean propiedad de root. Los archivos en /etc/cron.d no necesitan ser
ejecutables, mientras que los archivos en /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y
/etc/cron.monthly sí lo necesitan, ya que se ejecutan mediante run-parts (ver run-parts(8) para
más información).

cron se activa cada minuto, examinando todos los crontabs almacenados y verificando cada comando
para ver si debe ejecutarse en el minuto actual. Al ejecutar comandos, cualquier salida se envía por
correo electrónico al propietario del crontab (o al usuario especificado en la variable de entorno
MAILTO en el crontab, si existe) desde el propietario del crontab (o desde la dirección de correo
electrónico especificada en la variable de entorno MAILFROM en el crontab, si existe). Las copias
secundarias de cron que ejecutan estos procesos tienen su nombre cambiado a mayúsculas, como se verá
en el syslog y en la salida de [ps]({filename}../../ps)(1).

Además, cron verifica cada minuto si el tiempo de modificación de su directorio de spool (o el tiempo de modificación del archivo /etc/crontab) ha cambiado y, si es así, cron examinará el tiempo de modificación de todos los crontabs y volverá a cargar aquellos que hayan cambiado. Por lo tanto, cron no necesita reiniciarse cada vez que se modifica un archivo de crontab. Tenga en cuenta que el comando crontab(1) actualiza el tiempo de modificación del directorio de spool cada vez que modifica un crontab.

Existen consideraciones especiales cuando el reloj se cambia en menos de 3 horas, por ejemplo, al comienzo y al final del horario de verano. Si la hora ha avanzado, los trabajos que se habrían ejecutado en el tiempo que se omitió se ejecutarán poco después del cambio. Por el contrario, si la hora ha retrocedido en menos de 3 horas, los trabajos que caen en el tiempo repetido no se volverán a ejecutar.

Solo los trabajos que se ejecutan a una hora específica (no especificados como @hourly, ni con '*' en la especificación de la hora o el minuto) se ven afectados. Los trabajos que se especifican con comodines se ejecutan en función de la nueva hora inmediatamente.

Los cambios de reloj de más de 3 horas se consideran correcciones del reloj y la nueva hora se utiliza inmediatamente.

cron registra sus acciones en la instalación de syslog 'cron', y el registro se puede controlar
mediante la instalación de syslogd(8).

ENTORNO

Si se configura en /etc/default/cron en los sistemas Debian, la configuración de localización del demonio cron se puede administrar mediante el uso de /etc/environment o mediante el uso de /etc/default/locale, con los valores de este último anulando los valores del primero. Estos archivos se leen y se utilizan para configurar las variables de entorno LANG, LC_ALL y LC_CTYPE. Estas variables se utilizan luego para establecer el conjunto de caracteres de los correos electrónicos, que por defecto es 'C'.


Esto NO afecta el entorno de las tareas que se ejecutan bajo cron. Para obtener más información sobre cómo modificar el entorno de las tareas, consulte crontab(5).

El demonio utilizará, si está presente, la definición de /etc/localtime para la zona horaria.

El entorno se puede redefinir en las definiciones de crontab del usuario, pero cron solo gestionará las tareas en una única zona horaria.

ESPECÍFICO DE DEBIAN

Debian introduce algunos cambios en cron que no estaban disponibles originalmente en la versión principal. Los cambios más significativos introducidos son:

Soporte para /etc/cron.{hourly,daily,weekly,monthly} a través de /etc/crontab,

Soporte para /etc/cron.d (directorio de configuración para crontabs de paquetes),

Soporte PAM,

Soporte SELinux,

Soporte auditlog,

DST y otros cambios/correcciones relacionados con el tiempo,

SGID [crontab]({filename}../../crontab)(1) en lugar de SUID root,

Ubicaciones y comandos específicos de Debian,

Configuración específica de Debian (/etc/default/cron),

numerosas otras características y correcciones menores.

El soporte para /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly se proporciona en Debian a través de la configuración predeterminada del archivo /etc/crontab (consulte el ejemplo a nivel del sistema en crontab(5)). El crontab del sistema predeterminado contiene cuatro tareas: ejecutar cada hora, cada día, cada semana y cada mes. Cada una de estas tareas ejecutará run-parts(8) proporcionando cada uno de los directorios como un argumento. Estas tareas están desactivadas si se instala anacron(8) (excepto por la tarea horaria) para evitar conflictos entre ambos demonios.

Como se describió anteriormente, los archivos que se encuentran en estos directorios deben pasar algunas comprobaciones de validez, que incluyen lo siguiente: ser ejecutables, pertenecer a root, no ser modificables por el grupo u otros y, si son enlaces simbólicos, apuntar a archivos de propiedad de root. Además, los nombres de los archivos deben cumplir con los requisitos de nombres de archivo de run-parts(8): deben estar formados completamente por letras, dígitos y solo pueden contener los caracteres especiales guiones bajos ('_') y guiones ('-'). Cualquier archivo que no cumpla con estos requisitos no será ejecutado por run-parts(8). Por ejemplo, cualquier archivo que contenga puntos será ignorado. Esto se hace para evitar que cron ejecute alguno de los archivos que deja el sistema de gestión de paquetes de Debian al gestionar archivos en /etc/cron.d/ como archivos de configuración (es decir, archivos que terminan en .dpkg-dist, .dpkg-orig, .dpkg-old y .dpkg-new).

Esta característica se puede utilizar por los administradores del sistema y los paquetes para incluir tareas que se ejecutarán a intervalos definidos. Los archivos creados por los paquetes en estos directorios deben tener el nombre del paquete que los proporciona.

El soporte para /etc/cron.d está incluido en el propio demonio cron, que gestiona esta ubicación como el crontab del sistema. Este directorio puede contener cualquier archivo que defina tareas siguiendo el formato utilizado en /etc/crontab, es decir, a diferencia del crontab del usuario, estos archivos deben proporcionar el nombre de usuario para ejecutar la tarea en la definición de la tarea.

Los archivos de este directorio deben ser propiedad de root, no necesitan ser ejecutables (son archivos de configuración, al igual que /etc/crontab) y deben cumplir con la misma convención de nomenclatura que se utiliza en run-parts(8): deben consistir únicamente en letras mayúsculas y minúsculas, dígitos, guiones bajos y guiones. Esto significa que no pueden contener puntos. Si se especifica la opción -l a cron (esta opción se puede configurar a través de /etc/default/cron, consulte a continuación), entonces deben cumplir con la especificación del espacio de nombres LSB, exactamente como en la opción --lsbsysinit en run-parts(8).

El propósito previsto de esta función es permitir que los paquetes que requieren un control más preciso de su programación que los directorios /etc/cron.{hourly,daily,weekly,monthly} agreguen un archivo crontab a /etc/cron.d. Dichos archivos deben tener el nombre del paquete que los proporciona.

Además, la configuración predeterminada de cron se controla mediante /etc/default/cron, que es leído por el script init.d que inicia el demonio cron. Este archivo determina si cron leerá las variables de entorno del sistema y permite agregar opciones adicionales al programa cron antes de que se ejecute, ya sea para configurar su registro o para definir cómo tratará los archivos de /etc/cron.d.

VÉASE TAMBIÉN

crontab(1), crontab(5), run-parts(8)

AUTORES

Paul Vixie <_> Escribió esta página de manual (1994).

Steve Greenland <_> Mantuvo el paquete (1996-2005).

Javier Fernández-Sanguino Peña <_> Mantuvo el paquete (2005-2014).

Christian Kastner <_> Mantuvo el paquete (2010-2016).

Georges Khaznadar <_> Mantuvo el paquete (2022-2024).

DERECHOS DE AUTOR

Copyright © 1994 Paul Vixie

Distribuya libremente, excepto: no elimine mi nombre de la fuente o la documentación (no se atribuya el mérito de mi trabajo), marque sus cambios (no me culpe por sus posibles errores), no altere ni elimine este aviso. Se puede vender si se proporciona el código fuente compilable al comprador. No se incluye ninguna garantía, expresa o implícita, con este software; utilícelo bajo su propio riesgo, la responsabilidad por los daños (si los hay) a cualquier persona que resulte del uso de este software recae íntegramente en el usuario.

Desde el año 1994, se realizaron muchas modificaciones en esta página de manual, realizadas por los desarrolladores de Debian que mantuvieron cron(TM); arriba se muestra una lista corta, se puede encontrar más información en el archivo /usr/share/doc/cron/copyright.