Linux Crontab usa el tutorial básico

  

cron de la palabra griega chronos (que significa "tiempo"), es el siguiente programa en el sistema Linux para ejecutar automáticamente la tarea especificada. Por ejemplo, si desea crear una copia de seguridad de ciertos archivos o carpetas durante su sueño todas las noches, puede usar cron para automatizarlo.

Iniciar y detener el servicio

El servicio cron es un servicio integrado para Linux, pero no se inicia automáticamente. Puede iniciar y detener el servicio con el siguiente comando:

 /sbin /service crond start 
 /sbin /service crond stop 
 /sbin /service crond restart 
 /sbin /service crond reload 

Las líneas 1-4 anteriores son la configuración de inicio, parada, reinicio del servicio y recarga.

Para que cron se inicie automáticamente en el momento del arranque, agregue /sbin /service crond start al script /etc/rc.d/rc.local.

Ver, editar y eliminar

cron guarda la línea de comando en un archivo crontab (tabla cron), que generalmente está en el directorio /etc. Cada usuario del sistema puede tener su propio crontab (bajo /var /spool /cron /). Para ver el crontab del usuario actual, escriba crontab -l; para editar el crontab, escriba crontab -e; para eliminar el crontab, escriba crontab -r. Si actualmente es root, para ver /editar /eliminar /crontab de un usuario, simplemente agregue -u USERNAME (como crontab -e -u USERNAME) al comando apropiado. El editor predeterminado para los archivos crontab es vi, puede escribir exportar VISUAL = ’ editor ’ para cambiar el editor predeterminado.

El servicio cron no solo lee todos los archivos en el directorio /var /spool /cron cada minuto, sino que también lee el archivo /etc /crontab. La configuración de este archivo también permite a cron realizar tareas. El uso del comando crontab es una configuración de tareas a nivel de usuario, mientras que la edición del archivo /etc /crontab es una configuración para tareas a nivel de sistema.

Descripción de la sintaxis

Los siguientes son ejemplos de dos declaraciones cron (en el archivo /etc /crontab). El primero se utiliza para hacer una copia de seguridad del directorio /etc durante la noche, y el segundo ejecuta el programa analógico para procesar las estadísticas del servidor.

 12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc > > /dev /null 2 ​​> &1 
 52 5 * * * root /usr/local/src/analog-5.32-lh/analog > > /dev /null 2 ​​> &1 

Los siguientes son los campos y las descripciones de los campos en la sentencia cron:

Descripción 1 minuto (0-59) 2 horas (2-24) 3 Fecha (1-31) Abril (1-12; o abreviatura en inglés enero, febrero, etc.) 5 semanas (0-6, 0 para el domingo; O la palabra abreviatura Sun, Mon, etc.) 6 Nombre de usuario (como el usuario al ejecutar el comando) 7 Comando para ejecutar (ruta)

Ahora mire la primera línea:

 12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc > > /dev /null 2 ​​&g t; &1 

Esta declaración ejecutará tar czf /usr/local/backups/daily/etc.tar.gz /etc a las 3:12 am (03:12) Comando > > /dev /null 2 ​​> &1 significa enviar toda la salida estándar a /dev /null (papelera de reciclaje de Linux) y la salida de error estándar (2) al mismo lugar que la salida estándar (1) ( Eso es /dev /null). La ejecución de esta línea de comandos no producirá ningún resultado.

Esta declaración puede ser un poco más complicada:

 30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc > > /dev /null 2 ​​> &1 

Se ejecutará tar czf /usr/local/backups/daily/etc.tar.gz /etc el lunes, 13 de junio a las 15:30
Comando

La siguiente declaración puede lograr el mismo efecto:

 30 15 13 de junio Mon * root tar czf /usr/local/backups/daily/etc.tar.gz /etc > > /Dev /null 2 ​​> &1 

Si desea ejecutar un programa como usuario joey 15 minutos por hora
, puede usar:

 15 * * * * Joey /usr /bin /somecommand > > /dev /null 2 ​​> &1 

El asterisco (*) es un comodín, lo que indica que cron ignorará este campo.

Si desea ejecutar un programa cada dos horas, puede utilizar * /2 en el campo de hora. Se ejecutará a las 2 en punto, a las 4 en punto, a las 6 en punto y hellip; 22 puntos, a las 24 en punto. La declaración específica es la siguiente:

 0 * /2 * * * joey /usr /bin /somecommand > > /dev /null 2 ​​> &1 

La instrucción cron también puede usar una coma (,) Para especificar varias veces. Por ejemplo, si desea ejecutar un programa en 15 puntos y 30 minutos por hora
, puede usar 15,30 en el campo de minutos:

 15,30 * * * * joey /usr /bin /somecommand > > /dev /null 2 ​​> &1 

Si desea ejecutar un programa en la primera semana del mes (es decir, el número 1 al 7) a la hora especificada cada día
, puede usar 1-7 en el campo de fecha:

 15,30 * /2 1-7 * * joey /usr /bin /somecommand > > /dev /null 2 ​​> &1 

Esta declaración se ejecutará cada 15 horas y 30 minutos (<02> 15, 02: 30 … … 22: 15, 22:30, etc.) cada 2 horas cada mes 1-7th /Comando usr /bin /somecommand

Si desea ejecutar una colección de scripts en 16:18
todos los días, puede colocar todos los scripts que se ejecutarán en un directorio (como /home /username /cron), puede usar :

 18 16 * * * root run-parts /home /username /cron > > /dev /null 2 ​​> &1 

Si desea guardar la salida de un programa, puede Reemplace > > /dev /null 2 ​​> &1 con > > /home/user/somecommand.log 2 > &1.

Resumen

  • Ver la configuración cron del usuario actual, usar crontab -l
  • Editar la configuración cron del usuario actual, usar crontab -e
  • Elimine la configuración cron del usuario actual, use crontab -r
  • Vea /edite /elimine la configuración cron de un usuario como root, agregue -u USERNAME
  • después del comando para configurar las tareas a nivel del sistema , edite el archivo /etc /crontab

  • Copyright © Conocimiento de Windows All Rights Reserved