Crontab en Linux: con ejemplos y herramientas en tiempo real

toadmin. ru

Echemos un vistazo a Crontab, sus comandos y varias operaciones relacionadas con Crontab.

Aprenderemos cómo programar tareas utilizando la utilidad Cron, y finalmente, también discutiremos algunas de las herramientas en línea que nos ayudan a formatear y probar los comandos CRON.

Contents
  1. Fuente
  2. Escenarios de uso
  3. Sintaxis de crontab
  4. Nombre de usuario opcional (disponible solo si es un archivo CRONTAB del sistema)
  5. La tarea anterior detendrá la ejecución durante 30 segundos y se reanudará nuevamente.
  6. Los usuarios también pueden configurar sus propios trabajos cron utilizando el comando CRONTAB. Aquí también el sexto campo (en la descripción de la sintaxis anterior) es el comando para ejecutar, y todos los comandos se ejecutan como el usuario que creó el CRONTAB. Cada usuario puede tener su propio archivo CRONTAB, y aunque estos archivos están ubicados en el directorio/var/spool/cron/crontabs, no están destinados a ser directamente editables. Necesitamos usar el comando CRONTAB para editar o personalizar nuestros propios trabajos cron.
  7. Cuando los campos de minutos, horas y meses coinciden con la hora actual, y al menos uno de los campos de dos días (día del mes o día de la semana) coincide con el día actual.
  8. Comandos básicos
  9. La tabla CRON depende del usuario, lo que significa que debe iniciar sesión como usuario específico para ver la lista de tablas cron.
  10. Ejemplo: cronta b-u toadmin. r u-l
  11. El comando anterior abrirá los editores de VI lo que especificará los detalles del trabajo y guardará el archivo. Después de guardar, puede verificar si CRON está configurado usando Cronta b-L.
  12. Ejemplo: cronta b-u toadmin. r u-e
  13. Si desea obtener la confirmación antes de eliminar los trabajos programados, use el parámetr o-I con el parámetr o-r, que solicitará la confirmación del usuario antes de eliminar el CRONTAB del usuario.
  14. Ejecutar una vez por hora, es decir, 0 * * * * * * * *
  15. Del mismo modo, podemos usar otra cadena CRONTAB especial para objetivos semanales, diarios y por hora.
  16. /etc/cron. weekly
  17. Discutamos algunos ejemplos en tiempo real que son comúnmente utilizados por administradores de sistemas o profesionales de TI.
  18. La expresión de CRON anterior encontrará archivos y directorio vacíos desde el directorio /TMP y los eliminará. Esta tarea se ejecutará diariamente a las 00:45. Necesitamos especificar un nombre de usuario para ejecutar este trabajo. En el ejemplo anterior, el usuario toadmin. ru está ejecutando el trabajo cron.
  19. Las tareas/trabajos múltiples pueden separarse mediante semicolons (;) y pueden asignarse a una sola declaración cron.
  20. Hay varias herramientas de formato cron disponibles en línea.
  21. 0, 5, 10, 15, 15, 20, 25, 25, 30, 35, 35, 40, 40, 45, 50, 55 * * * * 1-5 /home/processmonitor. sh
  22. No solo eso, EasyCron también se puede utilizar para lograr otros propósitos, como la expresión de Cron estándar, registros de ejecución de trabajo de Cron, notificación de correo electrónico, registros de bloqueos individuales, etc.
  23. – Otra herramienta útil para crear CRONTAB, y con esta herramienta también puede agregar si desea guardar la salida de CRON en un archivo o enviarlo por correo electrónico.
  24. En el siguiente ejemplo, el trabajo se ejecutará a las 04:05 todos los días, todos los meses y cada semana.

Fuente

Crontab significa «Cron Table». La palabra cron proviene de la palabra griega cronos, que significa tiempo. Crontab es un proceso de demonio del sistema que ejecuta automáticamente algunas tareas y trabajos de acuerdo con la hora programada.

Cómo encontrar y eliminar rápidamente archivos grandes en Linux con un buscador de archivos grandes

Escenarios de uso

Crontab es útil para realizar diversas operaciones, como copias de seguridad automáticas, interconectar archivos de registro, sincronizar archivos entre máquinas remotas, limpiar carpetas temporales, etc. Crontab se puede usar para cualquier tipo de trabajo, pero se vuelve especialmente útil cuando comenzamos a tratar con elTipo de trabajo de un administrador del sistema.

Usando CRON, el administrador puede programar un trabajo para ejecutar en una hora y día específicas.

Entonces, echemos un vistazo a cómo podemos personalizar esto.

Sintaxis de crontab

Para ejecutar una lista de comandos, la utilidad CRON lee archivos de configuración. La sintaxis de Crontab se usa para interpretar las filas en las tablas de configuración de Crontab. Crontab tiene seis campos, y los primeros cinco (1-5) campos definen la fecha y la hora de ejecución. El último campo, es decir, el sexto campo, puede ser el nombre de usuario y/o la tarea/trabajo/comando/script que se está ejecutando.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ | _________ Día de la semana (0-6) (0 es domingo o usa nombres) │ │ │ │ | ____________ mes (1 – 12),* significa todos los meses │ │ | ______________ Día del mes (1 – 31),* significa todos los días │ | ________________ hora (0 – 23),* significa cada hora | ___________________ minuto (0 – 59),* significa cada minuto.

  • Asterisco
  • se usa para que coincida con todos los valores de campo posibles. Por ejemplo, un asterisco utilizado en el campo de la hora sería equivalente a cada hora, y un asterisco en el campo del mes sería equivalente a cada mes.

Nombre de usuario opcional (disponible solo si es un archivo CRONTAB del sistema)

Desglosemos la sintaxis anterior con algunos ejemplos.

0 5 5 * * * * /scripts/job. sh

1. Programe cron para correr a las 5 a. m. diariamente.

0 6, 18 * * * * /scripts/job. sh

2. Programe cron para correr dos veces al día a las 6 a. m. y a las 6 p. m.

* * * * * * * * * /scripts/job. sh

3. Programe cron para correr cada minuto

0 19 * * * mon /scripts/job. sh

4. Programe cron para correr todos los lunes a las 7:00 p. m.

*/10 * * * * * * /scripts/job. sh

5. Programe cron para correr cada 15 minutos.

* * * * * * febrero, jun, oct * * /script/job. sh

6. Programe cron para correr durante los meses seleccionados

25 7 4 3 * /home/script/backup. sh

7. Ejecute el script shell /home/script/backup. sh el 4 de marzo a las 7:25.

8. Programe cron para correr cada 30 segundos.

  • Como no tenemos control sobre segundos en Crontab, podemos lograr esto utilizando el proceso de dos pasos a continuación.
* * * * * * * * * * /home/scripts/script. sh
  • Primero programemos una tarea que se ejecute cada minuto.
* * * * * * * * dormir 30;/home/scripts/script. sh

Ahora usemos el comando de sueño para detener la ejecución durante 30 segundos.

La tarea anterior detendrá la ejecución durante 30 segundos y se reanudará nuevamente.

Tipo de archivos de configuración cron

Hay dos tipos de archivos de configuración cron:

Unix/Linux System crontab

Esto requiere privilegios de raíz, ya que generalmente se usan para servicios del sistema y trabajos críticos. El sexto campo (en la descripción de la sintaxis anterior) es el nombre del usuario en cuyo nombre se ejecuta el comando. Esto permite que el sistema CRONTAB ejecute comandos como cualquier usuario.

Cómo configurar Cozy Cloud Sync en Linux

Los usuarios también pueden configurar sus propios trabajos cron utilizando el comando CRONTAB. Aquí también el sexto campo (en la descripción de la sintaxis anterior) es el comando para ejecutar, y todos los comandos se ejecutan como el usuario que creó el CRONTAB. Cada usuario puede tener su propio archivo CRONTAB, y aunque estos archivos están ubicados en el directorio/var/spool/cron/crontabs, no están destinados a ser directamente editables. Necesitamos usar el comando CRONTAB para editar o personalizar nuestros propios trabajos cron.

¿Como funciona? El servicio CRON (demonio) se ejecuta en segundo plano y constantemente (cada minuto) verifica el archivo/etc/crontab y los directorios /etc/cron.*/. También verifica el directorio/var/spool/cron/. Los comandos son ejecutados por Chron

Cuando los campos de minutos, horas y meses coinciden con la hora actual, y al menos uno de los campos de dos días (día del mes o día de la semana) coincide con el día actual.

Comandos básicos

Lista de trabajos CRO existentes

cronta b-l

Podemos enumerar todos los trabajos de CRON sin abrir el archivo de configuración de CRONTAB utilizando el comando a continuación.

[[Correo electrónico protegido]~]# cronta b-l no crontab para toadmin. ru [[correo electrónico protegido]~]#

Si no hay tarea existente, devolverá la conclusión como

[[Correo electrónico protegido]~] # CRONTA B-L # Editar este archivo para ingresar tareas para iniciar CRON.# # Cada tarea debe definirse en una línea, # que indica en diferentes campos, cuando se iniciará la tarea # y qué comando debe completarse para esta tarea # # para determinar el tiempo que puede especificar valores específicos # minuto (m ), horas (h), días del mes (dom), mes (lun), # y día de la semana (dow) o usan '*' en estos campos (para 'cualquiera'). # # coloca que el lugar del Las tareas se lanzarán en función de las representaciones del sistema # Demon Cron sobre las zonas de tiempo y horario.# # Los datos de salida del KRONTAB (incluidos los errores) son enviados por # E-Mail al usuario que posee el archivo CRONTAB (si no se redirige).# # Por ejemplo, puede iniciar una copia de seguridad de todas las cuentas de los usuarios # a las 5 a. m. cada semana con: # 0 5 * * * * 1 ta r-zcf /var/backups/home. tgz/home/ # # para obtener información adicional, consulte Páginas del liderazgo de Crontab (5) y Cron (8) # # # M H Dom Acerca de la descarga 0 */1 * * * /home/ccunt/scripts/updateAccuntatuss. sh 0 */1 * */home/scripts/reactivateAccountus . SH [[Correo electrónico protegido]~]#

Si el usuario ya ha agregado algunas de las tareas, esto se mostrará de la siguiente manera.

La tabla CRON depende del usuario, lo que significa que debe iniciar sesión como usuario específico para ver la lista de tablas cron.

Lista de cron para un usuario específico

Para mostrar una lista de los trabajos programados de otro usuario, use el parámetr o-U (usuario) y-l (list).

cronta b-u oster_user_nam e-l

Ejemplo: cronta b-u toadmin. r u-l

Agregar/modificar entradas crontab

Para editar una entrada de CRONTAB, podemos usar la opción como

El comando anterior abrirá los editores de VI lo que especificará los detalles del trabajo y guardará el archivo. Después de guardar, puede verificar si CRON está configurado usando Cronta b-L.

Agregar/modificar entradas CRONTAB para un usuario específico

cronta b-u otro_usernam e-e

Podemos editar crontab para otro usuario usando el comando a continuación

8 formas más de maximizar la vida de batalla en las computadoras portátiles de Linux

Ejemplo: cronta b-u toadmin. r u-e

Eliminar entrada de Crontab

Use el parámetr o-r con CRONTAB para eliminar las tareas programadas sin confirmación de CRONTAB.

cronta b-i -r
[[Correo electrónico protegido]~]# cronta b-i -r crontab: ¿realmente eliminar el crontab de toadmin. ru?

Si desea obtener la confirmación antes de eliminar los trabajos programados, use el parámetr o-I con el parámetr o-r, que solicitará la confirmación del usuario antes de eliminar el CRONTAB del usuario.

Cadena especial de Crontab

Además de la sintaxis descrita anteriormente, también podemos usar las ocho cadenas especiales proporcionadas por Crontab. Esto no solo nos ahorrará tiempo sino que también mejorará la legibilidad. Descripción de cadena especial @Restart Ejecutar una vez, después del inicio.@Yearly se ejecuta una vez al año, es decir, 0 0 0 0 1 1 * @Yearly Igual que @Yearly @Monthly se ejecuta una vez al mes, es decir, 0 0 1 * * * @Weekly se ejecuta una vez por semana, es decir, 0 * * 0 @Daily RunUna vez por día, es decir, 0 0 * * * @midnight igual que @Daily @hourly

Ejecutar una vez por hora, es decir, 0 * * * * * * * *

Ejemplos de cuerdas de crontab especiales

1. CRONTAB para la programación de tareas anuales

Podemos ejecutar por encima de uno para enviar un saludo de año nuevo, se ejecutará en el primer minuto de cada año.

2. Crontab para programación de tareas mensuales.

Podemos ejecutar por encima de uno para realizar algunas acciones de limpieza al comienzo de cada mes.

Del mismo modo, podemos usar otra cadena CRONTAB especial para objetivos semanales, diarios y por hora.

  • El administrador del sistema puede usar el horario cron de todo el sistema, que se encuentra en un directorio CRON predefinido, como se muestra a continuación.
  • /etc/cron. d
  • /etc/cron. daily
  • /etc/cron. hural
  • /etc/cron. monthly

/etc/cron. weekly

Ejemplos de crontab en tiempo real

Discutamos algunos ejemplos en tiempo real que son comúnmente utilizados por administradores de sistemas o profesionales de TI.

Eliminar archivos y directorio vacíos

45 0 * * * * * toadmin. ru find /tm p-type f-emp t-delete

La expresión de CRON anterior encontrará archivos y directorio vacíos desde el directorio /TMP y los eliminará. Esta tarea se ejecutará diariamente a las 00:45. Necesitamos especificar un nombre de usuario para ejecutar este trabajo. En el ejemplo anterior, el usuario toadmin. ru está ejecutando el trabajo cron.

Ejecutar múltiples tareas con un solo trabajo de Cron

Las tareas/trabajos múltiples pueden separarse mediante semicolons (;) y pueden asignarse a una sola declaración cron.

Herramientas de formateo y prueba cron

Hasta ahora hemos discutido los comandos y la sintaxis de Crontab para programar una tarea. Pero qué si no es un administrador del sistema y su trabajo no es configurar regularmente Cron, puede ser imposible memorizar la sintaxis y esto abre espacio para errores. No se preocupe, tenemos una solución a este problema.

Hay varias herramientas de formato cron disponibles en línea.

– Es una GUI muy práctica donde puede especificar minutos, días y ruta de script para crear un crontab.

Tomemos un ejemplo en tiempo real en el que tengo que ejecutar /home/processmonitor. sh cada 5 minutos de lunes a viernes.

Entonces, obtuve la siguiente sintaxis cron que puedo poner en mi crontab ejecutando cronta b-e

0, 5, 10, 15, 15, 20, 25, 25, 30, 35, 35, 40, 40, 45, 50, 55 * * * * 1-5 /home/processmonitor. sh

– es un útil programador de trabajo de Cron basado en la web. Podemos crear un trabajo cron especificando una URL para invocar, podemos establecer el tiempo cuando debe ejecutarse. También podemos especificar una expresión cron o agregarla manualmente desde la forma descriptiva. Es importante tener en cuenta que opcionalmente podemos usar la autenticación HTTP básica para un pequeño nivel de seguridad.

No solo eso, EasyCron también se puede utilizar para lograr otros propósitos, como la expresión de Cron estándar, registros de ejecución de trabajo de Cron, notificación de correo electrónico, registros de bloqueos individuales, etc.

– Otra herramienta útil para crear CRONTAB, y con esta herramienta también puede agregar si desea guardar la salida de CRON en un archivo o enviarlo por correo electrónico.

Es un simple editor de expresión de Cron cron en línea. También proporciona herramientas útiles para monitorear su Cronjob. Todo lo que necesitamos hacer es copiar el comando proporcionado y agregarlo al final de la definición de CRONTAB. Si el trabajo cron no se completa o incluso no puede comenzar, recibirá una notificación por correo electrónico.

En el siguiente ejemplo, el trabajo se ejecutará a las 04:05 todos los días, todos los meses y cada semana.

Nos permite verificar las definiciones de hora/fecha del cron. Puede haber una situación en la que necesitemos descifrar la sintaxis del cron existente para solucionar problemas o simplemente querer ejecutar una prueba.

Para hacer esto, podemos usar esta herramienta. Todo lo que necesitamos hacer es copiar y pegar nuestra expresión cron en el campo de definición cron, luego seleccione el número de iteraciones y presione «prueba» para ver las diferentes fechas cuando se ejecutará