5 ejemplos de Crontab para ayudarlo a automatizar las tareas de Linux

5 ejemplos de Crontab para ayudarlo a automatizar las tareas de Linux

El programa cron automatiza la ejecución de otros programas en Linux. Cron es un demonio que se ejecuta continuamente e inicia otros programas de acuerdo con una programación determinada. Varios archivos diferentes definen este horario. Se conocen individualmente como crontabs.





Cron puede programar cualquier comando o tarea de Unix. A veces, querrá trabajar con un comando simple. Otras veces, necesitará escribir un guión para llevar a cabo la tarea completa. Cron funciona bien con cualquier enfoque. También admite reglas de programación complicadas y formas flexibles de manejar la salida del script.





Ya sea que esté llevando a cabo tareas simples de usuario o una completa administración del sistema, comprender cómo funciona cron utilizando ejemplos prácticos es imprescindible.





1. Limpiar / tmp con una Crontab de todo el sistema

los / tmp El directorio es una ubicación temporal para uso general por parte de cualquier programa o usuario del sistema. Muchos sistemas Unix eliminarán archivos antiguos en el directorio / tmp durante el inicio. Otros programan esta operación, a menudo usando cron.

Sin embargo, si desea un control personalizado sobre este proceso, o desea aplicarlo a un directorio diferente, configurar una tarea cron rápida es una manera fácil de hacerlo.



Aquí hay una forma de limpiar / tmp, o cualquier otro directorio de su elección:

|_+_|

A las tres y un minuto, todos los días, cron ejecutará este comando. Usa el comando de búsqueda para buscar archivos en el directorio / tmp. Filtra todo menos los archivos normales que se modificaron por última vez hace al menos 10 días. A continuación, elimina todos los archivos que encuentra.





Debe agregar un comando como este a un crontab global como / etc / crontab o el crontab de root usando sudo crontab -e . El comando debe ejecutarse como root para que pueda eliminar archivos en / tmp independientemente de quién sea el propietario.

Tenga en cuenta que este ejemplo especifica la ruta completa al comando de búsqueda. Cron usa un básico Configuración de PATH para buscar ejecutables, por lo que si el comando está en un lugar estándar (como / usr / bin ), esto no es realmente necesario. Puede especificar una RUTA alternativa en el propio crontab si prefiere ese enfoque. Pero usar una ruta completa para los comandos es un poco más resistente.





Si está trabajando en un proyecto que escribe registros o almacena datos en caché, este tipo de enfoque puede ser vital si está eliminando archivos para liberar espacio en el disco. Si bien el ejemplo anterior es un enfoque rápido y sucio, debe usar un comando como tmpwatch , si está disponible.

2. Copias de seguridad de la base de datos dos veces al día

A partir de ahora, centrémonos en las tareas específicas del usuario que puede administrar a través de su crontab local. Puede editar el crontab de su usuario actual con el siguiente comando:

|_+_|

Este crontab debe contener tareas específicas de su cuenta de usuario. Imagínese que está trabajando en un proyecto que implica llenar una base de datos MySQL. Puedes usar el mysqldump herramienta para crear un volcado SQL de una base de datos completa. Al redirigir su salida, puede tener copias de seguridad de la base de datos programadas y fáciles.

|_+_|

De forma predeterminada, cron envía la salida (incluidos los errores) por correo electrónico al usuario al que pertenece el archivo crontab. Pero puede redirigir la salida de la misma manera que lo haría desde una línea de comando, usando el > nombre de archivo notación.

convertir png a pdf windows 10

Observe cómo el ejemplo anterior usa la sustitución de comandos para construir el nombre de archivo basado en la marca de tiempo actual de Unix. Porque el % El símbolo tiene un significado especial para cron, el comando debe escapar con una barra invertida anterior.

3. Comprobación del tiempo de actividad del sitio con un script personalizado

Es posible que haya notado que el comando en el último ejemplo era incómodamente largo. Afortunadamente, no hay nada que le impida guardar comandos en un script y ejecutar ese script a través de su crontab. A continuación, se muestra un ejemplo que ejecuta una secuencia de comandos cada minuto:

|_+_|

Tenga en cuenta que, en teoría, puede utilizar el HOGAR Expansión variable o de tilde para un comando más corto:

|_+_|

Puede optar por evitar hacerlo, en caso de que cron deje de admitirlo. No hay ningún daño real en usar la ruta completa y podría decirse que es más legible.

El propio script utiliza el programa curl para recuperar el Código de estado HTTP para una URL determinada. Si el estado indica algo más que éxito, el script escribe un mensaje en la salida.

Como se mencionó anteriormente, cron nos enviará esta salida por correo electrónico. Puede ser útil que los comandos en cron no produzcan resultados en caso de éxito.

|_+_|

4. Informes de espacio en disco por correo electrónico

Si desea modificar el comportamiento de envío de correo electrónico predeterminado de cron, puede utilizar el CORREO Variable ambiental. Cron admite algunas variables que puede configurar en su archivo crontab. Cron luego aplica estas variables al entorno de cada comando que sigue.

Para establecer una dirección de correo electrónico de destino alternativa, utilice el siguiente formato:

|_+_|

Deberá ejecutar esto en una máquina que esté configurada para enviar un correo electrónico externo si es necesario. A continuación, se muestra un ejemplo que enviará un correo electrónico a otro usuario en la misma máquina. Funciona dos veces al día, a las 12:00 y a las 23:00. los df El comando muestra espacio libre en disco, por lo que esta entrada crontab delega la tarea de verificar que el espacio en disco se vea bien:

|_+_|

El correo electrónico resultante se verá así:

Tenga en cuenta que cron agrega sus propios encabezados de correo electrónico personalizados. Estos pueden ser útiles para depurar. También puede deshabilitar el comportamiento de correo electrónico predeterminado de cron usando una cadena vacía:

|_+_|

5. Transmitir un mensaje en momentos específicos

Los otros ejemplos utilizan una programación bastante sencilla, pero cron admite una sintaxis potente para las especificaciones de tiempo. No solo maneja coincidencias exactas, sino también:

  • Varios valores separados por comas ( , )
  • Rangos especificados con un guion ( - )
  • Valores de paso después de una barra inclinada ( / )

Entonces, por ejemplo, si desea enviar un mensaje a todos los usuarios que iniciaron sesión, dos veces por hora durante el horario laboral, pero solo cada tres horas, algo como lo siguiente será suficiente:

|_+_|

Este comando se ejecutará a los 15 y 45 minutos después de la hora, cada tres horas durante el horario de 9 am a 5 pm. El comando de pared envía un mensaje a cada usuario de terminal que haya iniciado sesión.

Incluso puede encontrar que cron ofrece una programación más flexible que su aplicación de calendario. Algunas variaciones le permiten especificar comandos para ejecutar el segundo viernes de un mes o en el día de la semana más cercano a una fecha determinada.

Cron puede automatizar muchos tipos de tareas de Linux

Esta es una pequeña selección del tipo de tareas que cron puede ayudarlo a automatizar. Puede llevar algún tiempo familiarizarse con la compleja sintaxis, pero cron es una poderosa utilidad. Puede usar cron tanto para tareas de todo el sistema como para tareas específicas del usuario.

Con una sintaxis complicada para programar, cron es poderoso, pero probablemente debería tener una buena referencia a mano. Las Crontabs permiten comentarios, por lo que es posible que desee incluir una línea de comentarios en la suya para documentar los campos de tiempo.

Cuota Cuota Pío Correo electrónico Cómo usar Crontab para automatizar tareas repetitivas en Linux

¿Quiere ahorrar tiempo y automatizar procesos clave en Linux? Crontab es la respuesta.

Leer siguiente
Temas relacionados
  • Linux
  • Automatización informática
  • Automatización de tareas
  • Comandos de Linux
Sobre el Autor Bobby Jack(58 Artículos publicados)

Bobby es un entusiasta de la tecnología que trabajó como desarrollador de software durante la mayor parte de dos décadas. Es un apasionado de los juegos, trabaja como editor de reseñas en Switch Player Magazine y está inmerso en todos los aspectos de la publicación en línea y el desarrollo web.

la computadora no dormirá windows 10
Más de Bobby Jack

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse