Red de conocimiento informático - Material del sitio web - Cómo usar crond para ejecutar tareas programadas en Linux

Cómo usar crond para ejecutar tareas programadas en Linux

crond es un proceso demonio que se utiliza para realizar periódicamente ciertas tareas o esperar el procesamiento de ciertos eventos en Linux, similar a las tareas programadas en Windows. Al instalar el sistema operativo, esta herramienta de servicio será. instalado de forma predeterminada e inicia automáticamente el proceso crond. El proceso crond comprobará periódicamente si hay una tarea que deba ejecutarse cada minuto. Si hay una tarea que deba ejecutarse, la ejecutará automáticamente.

El significado del archivo crontab:?

El archivo crontab creado por el usuario, cada línea representa una tarea y cada campo de cada línea representa una configuración. Su formato está dividido. en: Seis campos, los primeros cinco son segmentos de configuración de tiempo, el sexto es el segmento de comando a ejecutar, el formato es el siguiente:?

Minutos Horas Día Mes Semana ¿Comandos? ?

Minuto: representa el minuto, que puede ser cualquier número entero entre 0 y 59.

Hora: representa la hora, que puede ser cualquier número entero entre 0 y 23.

Día: Indica el día de la semana, que puede ser cualquier número entero entre 1 y 31.

Mes: Indica el mes, que puede ser cualquier número entero entre 1 y 12.

Semana: El día de la semana, que puede ser cualquier número entero entre 0 y 7, donde 0 o 7 representa el domingo.

Comando: El comando a ejecutar puede ser un comando del sistema o un archivo de script escrito por usted mismo.

En cada uno de los campos anteriores, también puedes utilizar los siguientes caracteres especiales:?

Asterix (*): indica todos los valores posibles, por ejemplo, si el campo mes está marcado con un asterisco, significa que la operación del comando debe ejecutarse todos los meses después de que se cumplan las restricciones de otros campos.

Coma (,): ¿Puede especificar un rango de valores de lista separados por comas, como "1,2,5,7,8,9"?

Barra central (-): puede especificar un rango de números enteros con una barra central entre los números enteros, por ejemplo, ¿"2-6" significa "2,3,4,5,6"?

Barra (/): Puede utilizar una barra diagonal para especificar la frecuencia del intervalo, por ejemplo "0-23/2" significa cada dos horas. Además, se pueden usar barras diagonales con asteriscos, por ejemplo, */10 si se usa en el campo de minutos significa ejecutar cada diez minutos.

De forma predeterminada, el sistema inicia un demonio crond después de la instalación. Si el sistema no viene con un demonio, podemos usar el comando yum para instalar uno.

¿yum instalar crontabs?

service crond start //¿iniciar el servicio?

service crond stop //¿cerrar el servicio?

reinicio crond del servicio //¿reiniciar el servicio?

servicio crond reload //¿Recargar configuración?

estado crond del servicio // ¿Verificar el estado del servicio?

<pre name="code" class="java">Para comprobar si el servicio crontab está configurado para iniciarse, ejecute el comando: ?

ntsysv?

Agregarlo al inicio automático:?

chkconfig -nivel 35 crond activado?

3. ¿Explicación detallada del comando crontab?

1. ¿Formato del comando:?

¿archivo crontab [-u usuario]?

crontab [-u usuario] [ -e | -l | -r ]?

2. Función de comando: ?

Usando el comando crontab, podemos ejecutar comandos del sistema específicos o scripts de shell a intervalos fijos.

La unidad de intervalo puede ser minutos, horas, días, meses, semanas o cualquier combinación de los mismos. Este comando es ideal para análisis de registros regulares o copias de seguridad de datos.

3. Parámetros del comando: ?

-u usuario: se utiliza para configurar el servicio crontab del usuario. Por ejemplo, "-u ixdba" significa configurar el servicio crontab del ixdba. usuario Este parámetro suele ser ejecutado por el usuario root.

archivo: archivo es el nombre del archivo de comando que se utilizará como archivo de lista de tareas de crontab y se cargará en crontab. Si este archivo no se especifica en la línea de comando, el comando crontab acepta comandos escritos en la entrada estándar (teclado) y los carga en crontab.

-e: Edita el contenido del archivo crontab de un usuario específico. Si no se especifica ningún usuario, significa editar el archivo crontab del usuario actual.

-l: Muestra el contenido del archivo crontab de un usuario específico. Si no se especifica ningún usuario, se muestra el contenido del archivo crontab del usuario actual.

-r: elimina el archivo crontab de un usuario del directorio /var/spool/cron. Si no se especifica ningún usuario, el archivo crontab del usuario actual se eliminará de forma predeterminada.

-i: muestra un mensaje de confirmación al eliminar el archivo crontab del usuario.

Lo anterior es un conocimiento básico sobre crond. A continuación, Songxian analizará cómo implementar una tarea programada simple.

Descripción de la tarea: use Python para escribir un pequeño script, que debe ejecutarse cada 1 minuto usando el servicio crond, y el resultado se almacena en cualquier archivo txt en /root en el directorio raíz para facilitar verificación de si el script se ejecutó correctamente (debido a que el resultado del script no se muestra en la interfaz del shell de Linux de forma predeterminada, debemos enviarlo a un archivo para verlo fácilmente).

Debemos generar el script en un archivo para facilitar su visualización.

Echemos un vistazo al código fuente del script Python:?

<pre name="code" class="python">?

#! /usr/bin/env pitón?

#codificación:utf-8?

¿importar sistema?

¿Tiempo de importación?

¿recargar(sys)?

sys.setdefaultencoding('utf-8')?

print("123 en China" + time.strftime("%Y-%m-%d %H:% M:%S", time.localtime())?

</pre>?

¿A continuación ejecutar crontab -e para ingresar al modo de edición?

Agregue el comando para programar la tarea. Tenga en cuenta que la última ruta escrita es txt.

Luego, guarde, salga y ejecute service? crond restart para reiniciar el servicio crond. el comando tail. -f abc.txt monitorea el archivo para ver si la tarea ha sido definida para su ejecución.

Puede usar el servicio crond stop para detener el servicio programado o eliminar nuestras tareas de prueba para evitar que se vea afectado. algunos servicios. ¡Por favor proceda con precaución!