Lo siguiente es para entornos que no son de Ubuntu, y algunas de las diferencias entre Ubuntu se cubrirán al final del artículo.
Bajo Linux, a menudo es necesario ejecutar periódicamente algunos scripts para implementar algunas funciones.
Bajo Linux, usamos crontab para implementar la función de secuencia de comandos de ejecución regular. A continuación se describe el uso de crontab. Y algunos de los problemas que encontré en
I. Instrucciones para usar crontab
1. crond es un comando que Linux utiliza para ejecutar programas de forma regular. Este comando de programación de tareas se inicia de forma predeterminada cuando se instala el sistema operativo. El comando crond comprueba periódicamente cada minuto para que se realice el trabajo, y si hay trabajo que realizar, se ejecutará automáticamente. La tarea de la programación de tareas de Linux se divide principalmente en las siguientes dos categorías:
a. Trabajo de ejecución del sistema, como limpieza de basura, copia de seguridad
b. Trabajo definido por el usuario, como cada 5 minutos Scripts
2. crontab es un disparador para tareas periódicas ejecutadas en sistemas UNIX. El usuario registra las tareas que deben realizarse periódicamente en este archivo y, a continuación, crond revisa periódicamente la lista de ejecución periódica y la ejecuta automáticamente cuando hay trabajo por realizar.
man crontab puede ver la siguiente información
a. /etc/crond.allow indica la lista de usuarios que pueden usar crontab
b. /etc /crond .deny indica una lista de usuarios a los que no se les permite usar crontab
3. Varios formatos de comando comúnmente utilizados por crontab
crontab -l //muestra el contenido del archivo crontab del usuario
crontab -e //Editar el contenido del archivo crontab del usuario
crontab -r //eliminar el archivo crontab del usuario
4. El formato básico del archivo crontab es el siguiente
* * * * * comando
Órdenes de día y semana de la hora del día
Cada columna significa significado
a. El primer * indica minutos de 1 a 59 minutos. El valor predeterminado * indica que se ejecuta cada minuto, xy indica que x ~ y se ejecuta cada minuto, * /n significa que se ejecuta cada n minutos, x, y, z significa que se ejecutan x, y, z minutos. .
b. El segundo * indica la hora 1 ~ 23 horas, el valor predeterminado * indica que se ejecuta cada hora, xy indica que x ~ y se ejecuta cada hora, * /n significa cada Ejecutado una vez cada hora, x, y, z significa x, y, z horas se ejecutan.
c. El tercero * indica el día 1 ~ 31, el valor predeterminado * indica que se ejecuta todos los días, xy indica que x ~ y se ejecuta todos los días, * /n significa cada n días para ejecutar Una vez, x, y, yz se ejecutan en x, y, yz días.
d. El cuarto * indica el mes 1 al 12, el valor predeterminado * indica que se ejecuta cada mes, y el xy indica que x a y se ejecuta cada mes, * /n significa cada Ejecutar una vez cada n minutos, x, y, z significa x, y, z días se ejecutan.
e. La quinta * indica la semana 0 a 6 (0 significa domingo), el valor predeterminado es de lunes a domingo, y x-y significa que cada semana se ejecutan de x a semana semanalmente.
5. Algunos ejemplos de archivos crontab
a. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart //significa reiniciar Apache a las 21:30 todos los días
b. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart //Representa mensualmente 1,10,22 4:45 reiniciar apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart //Reinicie Apache cada 30 minutos entre las 18: 00 y las 23: 00 todos los días
d * * /1 * * * /usr/local/etc/rc.d/lighttpd restart //significa reiniciar Apache cada hora
e. * /5 * * * * /usr /local /etc /rc.d/lighttpd restart //Restablecer apache cada 5 minutos
II. Ejemplo específico
1. Primero creo un script de shell llamado /s en /home /chenguolin /tmp /.sh. Tenga en cuenta que la ruta dentro del script usa una ruta absoluta.
La función de este script es redirigir la salida de la fecha actual al archivo de salida en el directorio actual.
2. A continuación, configure el script para que se ejecute cada 2 minutos, > /dev /null 2 > &1. El motivo es que el sistema enviará un correo electrónico al usuario después de cada ejecución de la tarea. A través de esta operación, la información se puede redirigir a /dev /null. El archivo /dev /null es similar a la papelera de reciclaje. El sistema se limpia automáticamente después de un período de tiempo. .
* /2 * * * * sh /home/chenguolin/tmp/s.sh > /dev /null 2 > &1
Luego encontré n 2 minutos, El archivo de salida no tiene salida en absoluto.
3. Después de que Google /Baidu no haya obtenido resultados, le pregunté a mi colega que la razón es que crontab a veces no tiene forma de ejecutar los dos archivos en el directorio de inicio del usuario, a saber, .bashrc y .bash_profile
Estos dos archivos tienen las siguientes funciones
.bashrc es la información de bash para tu shell bash, que se lee al iniciar sesión y cada vez que abres un shell nuevo; Br>
La función de .bash_profile es que cada usuario puede usar este archivo para ingresar información de shell específica para su propio uso. Cuando el usuario inicia sesión, ¡el archivo solo se ejecuta una vez! De forma predeterminada, establece algunas variables de entorno para ejecutar el archivo .bashrc del usuario,
, por lo que debemos agregar manualmente /home/chenguolin/.bashrc &source /home /chenguolin /al archivo crontab. .bash_profile
La función de la fuente es ejecutar comandos en el entorno actual de bash, mientras que las secuencias de comandos es iniciar una subshell para ejecutar comandos. De esta manera, si el comando para establecer la variable de entorno (o alias, etc.) se escribe en los scripts, solo afectará a la subshell y no podrá cambiar el BASH actual. Por lo tanto, al configurar la variable de entorno a través del archivo (columna de comando), use el comando de origen.
Por lo tanto, el archivo crontab se convierte en
* /2 * * * * source &&/home/chenguolin/.bashrc &&source /home/chenguolin/.bash_profile &&sh /home/chenguolin/tmp/s.sh > /dev /null 2 > &1
4. Se encuentra que el script se puede ejecutar periódicamente.
Si no funciona, solo puede verificarlo buscando el registro. Los archivos de registro de Linux crond que no son de Ubuntu se guardan en /var /log
III. Uso de crontab para ejecutar scripts en ubuntu
Tenga en cuenta las siguientes preguntas para
1. El programa de servicio crontab en ubuntu es cron, y el registro de servicio cron predeterminado no está disponible, debemos abrir manualmente
a. Sudo vim /etc/rsyslog.d/50-default.conf
b. Localice la línea cron. * y elimine el comentario
c. Luego reinicie el servicio cron sudo service cron restart
d. Esto encontrará el registro cron en /var /log El archivo, podemos encontrar el problema mirando el archivo de registro
2. En ubuntu, no hay un archivo .bash_profile en el directorio de inicio del usuario, y el archivo .bashrc se ejecutará automáticamente, simplemente escriba lo siguiente
* /2 * * * * sh /home/chenguolin/tmp/s.sh > /dev /null 2 > &1
Hoy, compartiré 11 comandos de terminal de Linux geniales compilados por Linux durante diez años. A
Muchos usuarios que son nuevos en Linux usarán el concepto de Windows para entender el sis
Este artículo describe la implementación de malloc y su malloc en la operación de expansión del mont
Ubuntu es un buen sistema operativo Linux, pero para los recién llegados que lo acaban de instalar,
Linux iptables ip, Linux iptables shield ip
Comenzando con el comando vi editor bajo linux
Do DBA debe aprender, no morirá 11 comandos básicos de Linux
Implementar proceso de monitoreo de ancho de banda de red bajo linux
Resolver linux64 bit jpeg error de instalación make: ./libtool: Commandnotfound
Estructura de juicio en Linux Shell
Método de configuración de la red de la máquina virtual Inux y solución a los problemas
Win10 vista previa versión 10568 cómo Win10 Build 10568 actualizó
¿Cómo usar la función de "configuración de posicionamiento" que viene con el sistema Win8.1?
WinXP solicita que ningún proveedor de la red acepte la ruta de red especificada. ¿Qué debo hacer?
Encuentre rápidamente la contraseña de inicio de sesión olvidada de Win7
Análisis de problemas comunes y soluciones para CD-ROM bajo el sistema Windows
Solo 1/3 desarrolladores de Microsoft Cup interesados en el sistema WP
¿Qué debo hacer cuando Win7 /Win8.1 abre una carpeta?
6 servicios del sistema en el sistema Win7 que afectan la vida útil del disco duro
Win7 juega a League of Legends maneja de forma no válida cómo resolver