Crontab es una herramienta de ejecución programada comúnmente utilizada en sistemas Unix/Linux, que puede ejecutar trabajos específicos sin intervención manual. Muchas veces tenemos que usar el comando Crontab. Por ejemplo, el script acme.sh mencionado en el certificado SSL de nombre de dominio gratuito Let's Encrypt Wildcard utiliza la tarea programada de Crontab para actualizar el certificado SSL.

A través del comando crontab, podemos ejecutar instrucciones específicas del sistema o scripts de shell a intervalos fijos. Cuando el VPS de Linux monta Google Drive y Dropbox, podemos usar el comando Crontab para lograr una copia de seguridad de sincronización programada y usar Crontab para reiniciar el VPS y el servidor con regularidad. todos los días. O servicios Nginx, PHP, MysqL, etc.

En resumen, dominar la sintaxis básica del comando Crontab es muy necesario para que podamos administrar nuestros propios hosts VPS. Este artículo explica cómo usar el comando Crontab de Linux a través de ejemplos sin entrar en una exploración en profundidad. Es principalmente para facilitar consultas y referencias rápidas. en el futuro.

Tutorial de operación y sintaxis básica de tareas programadas del comando Linux Crontab: operación de automatización de servidor / VPS

Para obtener más comandos y aplicaciones relacionadas con el alojamiento VPS, puede consultar:

  1. Resumen de los comandos de monitoreo del sistema Linux: CPU maestra, memoria, E/S de disco, etc. para encontrar cuellos de botella en el rendimiento
  2. Tres herramientas de comando: Rsync, SCP y Tar-quick, solución para la reubicación remota de sitios web y sincronización de datos de VPS
  3. Tres formas de compartir directorios de carpetas en Linux: montaje remoto NFS, almacenamiento compartido GlusterFS y directorios compartidos samba

1. Reiniciar vista y edición de Crontab

1. Ver la lista de tareas de ejecución programada de crontab

crontab -l

2. Edite crontab para ejecutar tareas regularmente

crontab -e

3. Eliminar tareas programadas de crontab

crontab -r

4. Comandos relacionados:

sudo service crond start     #启动服务
sudo service crond stop      #关闭服务
sudo service crond restart   #重启服务
sudo service crond reload    #重新载入配置
sudo service crond status    #查看服务状态

2. Sintaxis del formato básico de Crontab

Expresión de tiempo de crontab:

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

Veamos primero un ejemplo. Ejecute el programa de copia de seguridad a la 1:00 a. m. todos los días: 0 1 * * * /root/wzfou.com/backup.sh. Entre ellos, /root/wzfou.com/backup.sh es la ruta del script. Para utilizar la ruta absoluta, consulte la figura siguiente para conocer el formato de fecha anterior.

Instancia 1: se ejecuta cada 1 minuto

* * * * * /root/wzfou.com/backup.sh

Instancia 2: Ejecutar una vez cada hora en los minutos 3 y 15

3,15 * * * * /root/wzfou.com/backup.sh

Ejemplo 3: Ejecutar una vez al día de 8:00 a 11:00 en los minutos 3 y 15

3,15 8-11 * * * /root/wzfou.com/backup.sh

Instancia 4: Ejecutado cada dos días en los minutos 3 y 15 de 8 am a 11 am

3,15 8-11 */2  *  * /root/wzfou.com/backup.sh

Instancia 5: Ejecutado todos los lunes de 8 am a 11 am en los minutos 3 y 15

3,15 8-11 * * 1 /root/wzfou.com/backup.sh

Ejemplo 6:Ejecutar una vez cada noche a las 21:30

30 21 * * * /root/wzfou.com/backup.sh

Instancia 7: Ejecutar una vez al mes a las 4:45 los días 1, 10 y 22

45 4 1,10,22 * * /root/wzfou.com/backup.sh

Ejemplo 8:Ejecutar una vez cada sábado y domingo a la 1:10

10 1 * * 6,0 /root/wzfou.com/backup.sh

Instancia 9: Ejecutado cada 30 minutos entre las 18:00 y las 23:00 todos los días

0,30 18-23 * * * /root/wzfou.com/backup.sh

Instancia 10: Ejecutar una vez cada sábado a las 23:00 pm

0 23 * * 6 /root/wzfou.com/backup.sh

Ejemplo 11:Ejecutar una vez cada hora

* */1 * * * /root/wzfou.com/backup.sh

Ejemplo 12:Ejecutado cada hora entre las 23:00 de la noche y las 7:00 del día siguiente

* 23-7/1 * * * /root/wzfou.com/backup.sh

Ejemplo 13: se ejecuta el primer día de cada semana (es decir, comienza a las 24:00 todos los domingos por la noche).

@weekly /root/wzfou.com/backup.sh

Ejemplo 14:Ejecutar una vez el día 15 de cada mes.

0 11 15 * * /root/wzfou.com/backup.sh

Instancia 15: se ejecuta una vez el primer día de cada mes (es decir, comienza a las 0 a. m. del día 1 de cada mes).

@monthly /root/wzfou.com/backup.sh

Instancia 16: se ejecuta una vez en el mes especificado (se ejecuta una vez cada noche a las 0:00 en enero, abril y junio).

0 0 * jan,apr,jun * /root/wzfou.com/backup.sh

Instancia 17: Ejecutar una vez después de reiniciar.

@reboot /root/wzfou.com/backup.sh

Ejemplo 18:Enviar una notificación por correo electrónico después de ejecutar la tarea programada.

MAILTO="raj"
1 1 * * * /root/wzfou.com/backup.sh

Ejemplo 19: Especificar shell (el valor predeterminado es /bin/bash)

SHELL=/bin/sh
1 1 * * * /root/wzfou.com/backup.sh

Instancia 20: especifica variables de entorno.

PATH=/sbin:/bin:/usr/sbin:/usr/bin 
1 1 * * * /root/wzfou.com/backup.sh

4. Posibles problemas con Crontab

4.1  Crontab no surte efecto inmediatamente

La tarea programada de Crontab recién creada deberá esperar 2 minutos antes de ejecutarse después de guardarla. Por supuesto, si desea ejecutarla inmediatamente, puede reiniciar Crontab. Cuando crontab falla, puede intentar /etc/init.d/crond restart para resolver el problema, o verificar el registro para ver si se ejecuta una tarea/se informa un error tail -f /var/log/cron.

4.2  Crontab no se ejecuta

Cuando la ruta del archivo está involucrada en el script, escriba la ruta global. Después de actualizar la hora y la zona horaria del sistema, es necesario reiniciar cron. Cuando la ejecución manual del script está bien, pero el crontab no se ejecuta, lo más probable es que sea una variable de entorno. Puede intentar introducir directamente la variable de entorno en el crontab para resolver el problema, por ejemplo:

0 * * * * . /etc/profile;/bin/sh /root/wzfou.com/backup.sh

4.3  Crontab no tiene permiso para ejecutar

Preste atención a la programación de tareas a nivel del sistema y a la programación de tareas a nivel de usuario. Sólo el usuario root y el propietario del archivo crontab pueden ejecutar -e, -l, -r y - v< Utilice Nombre de usuario después del indicador ept4> para editar, enumerar, eliminar o verificar el archivo crontab para un usuario específico.

La operación de programación de tareas del usuario root se puede configurar mediante "crontab -uroot -e", o las tareas programadas se pueden escribir directamente en el archivo /etc/crontab.

Para editar el crontab de otro usuario, ejecute el siguiente comando como root. El mismo formato (agregue "-u nombre de usuario" al final del comando) también se puede usar para enumerar o eliminar crontabs.

 crontab -u username -e

4.4  Notificación después de la ejecución de Crontab

Cuando la tarea programada de Crontab se ejecuta a la hora que usted especifica, el sistema le enviará una carta mostrando el contenido de ejecución del programa, que se puede ver en el registro /var/log/cron. Si no desea recibir dicha notificación, agregue > /dev/null 2>&1 después de un espacio en cada línea.

Deja una respuesta