Cómo utilizar Crontab
Tabla de contenido:
- ¿Qué es el archivo Crontab?
- Sintaxis y operadores de Crontab
- Archivos Crontab en todo el sistema
- Macros Predefinidas
- Comando Crontab de Linux
- Variables de Crontab
- Restricciones de Crontab
- Cron Jobs Ejemplos
- Conclusión
Cron es un demonio de programación que ejecuta tareas a intervalos específicos. Estas tareas se denominan trabajos cron y se utilizan principalmente para automatizar el mantenimiento o la administración del sistema.
Por ejemplo, puede configurar un trabajo cron para automatizar tareas repetitivas, como hacer una copia de seguridad de bases de datos o datos, actualizar el sistema con los últimos parches de seguridad, verificar el uso del espacio en disco, enviar correos electrónicos, etc. Algunas aplicaciones, como Drupal o Magento, requieren trabajos cron para realizar ciertas tareas.
Los trabajos cron se pueden programar para ejecutarse por minuto, hora, día del mes, mes, día de la semana o cualquier combinación de estos.
¿Qué es el archivo Crontab?
Crontab (tabla cron) es un archivo de texto que especifica la programación de trabajos cron. Hay dos tipos de archivos crontab. Los archivos crontab de todo el sistema y los archivos crontab de usuarios individuales.
Los archivos crontab de los usuarios se almacenan por el nombre del usuario, y su ubicación varía según los sistemas operativos. En un sistema basado en Red Hat como CentOS, los archivos crontab se almacenan en el directorio
/var/spool/cron
mientras que en Debian y los archivos Ubuntu se almacenan en el directorio
/var/spool/cron/crontabs
.
Aunque puede editar los archivos crontab del usuario manualmente, se recomienda utilizar el comando
crontab
.
/etc/crontab
y los archivos dentro del directorio
/etc/cron.d
son archivos crontab de todo el sistema que solo pueden ser editados por los administradores del sistema.
En la mayoría de las distribuciones de Linux, también puede colocar scripts dentro de los directorios
/etc/cron.{hourly, daily, weekly, monthly}
y los scripts se ejecutarán cada
hour/day/week/month
.
Sintaxis y operadores de Crontab
Cada línea en el archivo crontab del usuario contiene seis campos separados por un espacio seguido del comando que se ejecutará.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Los primeros cinco campos pueden contener uno o más valores, separados por una coma o un rango de valores separados por un guión.
-
*-El operador de asterisco significa cualquier valor o siempre. Si tiene el símbolo de asterisco en el campo Hora, significa que la tarea se realizará cada hora.,-El operador de coma le permite especificar una lista de valores para la repetición. Por ejemplo, si tiene1, 3, 5en el campo Hora, la tarea se ejecutará a la 1 a.m., a las 3 a.m. y a las 5 a.m.--El operador de guiones le permite especificar un rango de valores. Si tiene1-5en el campo Día de la semana, la tarea se ejecutará todos los días de la semana (de lunes a viernes)./-El operador de barra le permite especificar valores que se repetirán durante un cierto intervalo entre ellos. Por ejemplo, si tiene*/4en el campo Hora, significa que la acción se realizará cada cuatro horas. Es lo mismo que especificar0, 4, 8, 12, 16, 20. En lugar de un asterisco antes del operador de barra diagonal, también puede usar un rango de valores,1-30/10significa lo mismo que1, 11, 21.
Archivos Crontab en todo el sistema
La sintaxis de los archivos crontab de todo el sistema es ligeramente diferente a la de los crontabs de usuario. Contiene un campo de usuario obligatorio adicional que especifica qué usuario ejecutará el trabajo cron.
Existen varias macros especiales de programación de Cron que se utilizan para especificar intervalos comunes. Puede usar estos accesos directos en lugar de la especificación de fecha de cinco columnas. El comando crontab le permite instalar o abrir un archivo crontab para editarlo. Puede usar el comando crontab para ver, agregar, eliminar o modificar trabajos cron utilizando las siguientes opciones: El comando crontab abre el archivo crontab utilizando el editor especificado por las
El demonio cron establece automáticamente varias variables de entorno. Los administradores del sistema pueden controlar qué usuarios tienen acceso al comando
Por defecto, solo el archivo
Si el archivo
Si ninguno de los dos archivos existe, solo los usuarios con privilegios administrativos pueden usar el comando
A continuación se presentan algunos ejemplos de trabajos cron que le mostrarán cómo programar una tarea para que se ejecute en diferentes períodos de tiempo. Ejecute un comando a las 15:00 todos los días de lunes a viernes: Ejecute un script cada 5 minutos y redirija la salida estándar a
Ejecute dos comandos todos los lunes a las 3 PM (use el operador
Ejecute un script PHP cada 2 minutos y escriba la salida en un archivo: Ejecute un script todos los días, cada hora, cada hora, de 8 a. M. A 4 p. M.: Ejecute un script el primer lunes de cada mes, a las 7 a.m. Ejecute el script a las 9:15 pm, los días 1 y 15 de cada mes: Establezca las
Ha aprendido cómo crear trabajos cron y programar tareas en una fecha y hora específicas. Siéntase libre de dejar un comentario si tiene alguna pregunta.
* * * * * command(s)
* * * * * command(s)
Macros Predefinidas
@yearly
(o
@annually
): ejecuta la tarea especificada una vez al año a la medianoche (12:00 a.m.) del 1 de enero. Equivalente a
0 0 1 1 *
.
@monthly
: ejecuta la tarea especificada una vez al mes a la medianoche del primer día del mes. Equivalente a
0 0 1 * *
.
@weekly
: ejecuta la tarea especificada una vez por semana a la medianoche del domingo. Equivalente a
0 0 * * 0
.
@daily
: ejecuta la tarea especificada una vez al día a medianoche. Equivalente a
0 0 * * *
.
@hourly
- Ejecuta la tarea especificada una vez por hora al comienzo de la hora. Equivalente a
0 * * * *
.
@reboot
: ejecuta la tarea especificada al inicio del sistema (tiempo de arranque).Comando Crontab de Linux
crontab -e
: edita el archivo crontab o crea uno si aún no existe.
crontab -l
: muestra el contenido del archivo crontab.
crontab -r
: elimina el archivo crontab actual.
crontab -i
: elimina el archivo crontab actual con un aviso antes de eliminarlo.
crontab -u
EDITOR
entorno
VISUAL
o
EDITOR
.
Variables de Crontab
PATH=/usr/bin:/bin
. Si el comando que está llamando está presente en la ruta cron especificada, puede usar la ruta absoluta al comando o cambiar la variable cron
$PATH
. No puede agregar implícitamente
:$PATH
como lo haría con un script normal. El shell predeterminado está configurado en
/bin/sh
. Puede establecer un shell diferente cambiando la variable
SHELL
invoca el comando desde el directorio de inicio del usuario. La variable
HOME
se puede anular mediante la configuración en el crontab. La notificación por correo electrónico se envía al propietario del crontab. Para sobrescribir el comportamiento predeterminado, puede usar la variable de entorno
MAILTO
con una lista (separada por comas) de todas las direcciones de correo electrónico en las que desea recibir las notificaciones por correo electrónico. Si se define
MAILTO
pero está vacío (
MAILTO=""
), no se envía ningún correo.Restricciones de Crontab
crontab
utilizando los archivos
/etc/cron.deny
y
/etc/cron.allow
. Los archivos consisten en una lista de nombres de usuario, un nombre de usuario por línea.
/etc/cron.deny
existe y está vacío, lo que significa que todos los usuarios pueden usar el comando crontab. Si desea denegar el acceso a los comandos crontab a un usuario específico, agregue el nombre de usuario a este archivo.
/etc/cron.allow
solo existe, los usuarios que figuran en este archivo pueden usar el comando
crontab
.
crontab
.Cron Jobs Ejemplos
0 15 * * 1-5 command
dev null
, solo se enviará el error estándar a la dirección de correo electrónico especificada:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
entre los comandos):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
PATH
personalizadas
HOME
,
PATH
,
SHELL
y
MAILTO
y ejecute un comando cada minuto.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Conclusión
Involucrarse en la programación con Revolution Media
Desarrollar aplicaciones atractivas e interactivas usando un lenguaje de programación simple pero poderoso.
Acortar el tiempo de programación de Java con JavaRebel
Solo para programadores: Cambie el código de Java y siga funcionando sin redistribución.
Descargue ejemplos de código gratuito en programación paralela con Microsoft .NET
Programación paralela con Microsoft .NET: patrones de diseño para descomposición y coordinación en multinúcleo Architectures es un libro sobre programación paralela.







