Cómo automatizar tareas en Ubuntu desde la terminal con Cron

Desarrollo web y Programación 19 de dic. de 2022

Cuando administramos servidores, muchas veces necesitamos automatizar ciertas tareas que deben ejecutarse cada determinado momento. Entonces, es imprescindible hacer uso de una herramienta para dejar estos comandos programados y se activen en el momento deseado.

Para ello, utilizaremos Cron, una herramienta que nos permite crear tareas programadas para que se ejecuten en el momento que lo necesitemos.

Instalación de Cron

Casi todas las distribuciones de Linux traen Cron instalado por defecto. Sin embargo, comparto los comandos para ser instalado.

Actualizar el sistema

sudo apt update
sudo apt upgrade

Instalación de Cron

sudo apt install cron

Manten Cron siempre en ejecución

sudo systemctl enable cron

Una vez instalado y configurado Cron, ya puedes programar tareas.

Funcionamiento de Cron

Las tareas se guardan y se manejan a través de un archivo llamado crontab Cada usuario en el sistema tiene acceso a su propio archivo de tareas y estas se almacenan en la siguiente ruta: /var/spool/cron/crontabs/

Para programar una tarea, abre el archivo crontab y edítalo agregando el código de terminal que deseas ejecutar de manera programada.

Sintaxis

La sintaxis está divida en dos partes: fijar la hora (schedule) y el comando a ejecutar. Como resultado, el comando se ejecutará virtualmente como si lo escribieras tú en la línea de comandos.

La schedule se divide en cinco partes en el siguiente orden:

Campo

Valores permitidos

Minutos

0-59

Horas

0-23

Día del mes

1-31

Mes

1-12 o JAN-DEC

Día de la semana

0-6 o SUN-SAT

Juntos la Schedule y el comando a ejecutar quedaría así:

Minutos horas dia_del_mes mes dia_de_la_semana comando_a_ejecutar

Ejemplo 1

1 Iniciar la edición del archivo crontab

crontab -e

Preguntará el editor, tú selecciona el de tu preferencia.

2 Agregar la expresión a ejecutar

La siguiente expresión ejecuta el comando "curl http://www.google.com" todos los martes a las 5 y 30 PM:

30 17 * * 2 curl https://google.com

El asterísco “*” significa “todo”, entonces el comando de ejemplo se ejecuta todos los días del mes y todos los meses.

Ejemplo 2

Reiniciar el sistema a las 0 horas y un minuto todos los días.

0 0 * * * sudo shutdown –r

Etiquetas