El proceso cron integrado de Linux puede ayudarnos a satisfacer estas necesidades. Cron junto con scripts de shell no tiene problemas incluso con instrucciones muy complejas.
Introducción a cron
El comando crontab que usamos a menudo es la abreviatura de cron table. Es el archivo de configuración de cron, también se puede llamar lista de trabajos. Podemos encontrar los archivos de configuración relacionados en las siguientes carpetas.
- El directorio /var/spool/cron/ almacena las tareas crontab de cada usuario, incluido root. Cada tarea se nombra con el nombre del creador.
- /etc/crontab Este archivo es responsable de programar diversas tareas de administración y mantenimiento.
- El directorio /etc/cron.d/ se utiliza para almacenar cualquier archivo o script crontab que se vaya a ejecutar.
- También podemos colocar scripts en los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly para que se ejecuten cada hora/día/semana/mes.
Uso de crontab
Los comandos que usamos habitualmente son los siguientes:
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)
Usamoscrontab -eAl entrar en la edición de la hoja de trabajo del usuario actual, es la interfaz común de vim. Cada línea es un comando.
La estructura de comando de crontab es tiempo + acción, y su tiempo tieneminuto, hora, día, mes, semanacinco tipos, y los operadores son
- * todos los números dentro del rango de valores
- /cada cuántos números
- -de X a Z
- ,números dispersos
Ejemplos
Ejemplo 1: ejecutar myCommand cada 1 minuto
* * * * * myCommand
Ejemplo 2: ejecutar en los minutos 3 y 15 de cada hora
3,15 * * * * myCommand
Ejemplo 3: ejecutar en los minutos 3 y 15 de 8 a 11 a.m.
3,15 8-11 * * * myCommand
Ejemplo 4: ejecutar en los minutos 3 y 15 de 8 a 11 a.m. cada dos días
3,15 8-11 */2 * * myCommand
Ejemplo 5: ejecutar en los minutos 3 y 15 de 8 a 11 a.m. todos los lunes
3,15 8-11 * * 1 myCommand
Ejemplo 6: reiniciar smb a las 21:30 cada noche
30 21 * * * /etc/init.d/smb restart
Ejemplo 7: reiniciar smb a las 4:45 los días 1, 10 y 22 de cada mes
45 4 1,10,22 * * /etc/init.d/smb restart
Ejemplo 8: reiniciar smb a la 1:10 los sábados y domingos
10 1 * * 6,0 /etc/init.d/smb restart
Ejemplo 9: reiniciar smb cada 30 minutos entre las 18:00 y las 23:00
0,30 18-23 * * * /etc/init.d/smb restart
Ejemplo 10: reiniciar smb a las 11:00 p.m. los sábados
0 23 * * 6 /etc/init.d/smb restart
Ejemplo 11: reiniciar smb cada hora
0 */1 * * * /etc/init.d/smb restart
Ejemplo 12: reiniciar smb cada hora entre las 11 p.m. y las 7 a.m.
0 23-7/1 * * * /etc/init.d/smb restart