domingo, julio 20, 2025
InicioInternet de las cosasAutomatizacónAutomatización de tareas usando Crontab y Python

Automatización de tareas usando Crontab y Python

Descripción General

En el mundo de la administración de sistemas y la gestión de servidores, la automatización es clave para mejorar la eficiencia y reducir errores humanos. Cron, el programador de tareas de Unix/Linux, permite ejecutar comandos y scripts en intervalos regulares sin intervención manual, convirtiéndose en una herramienta esencial para cualquier administrador de sistemas o desarrollador, personalmente investigando un poco me encontré una manera de realizar estas tareas desde una interfaz web usando Webmin.

¿Qué es Webmin?

Webmin es una herramienta de administración de sistemas basada en la web que te permite controlar varias configuraciones del sistema desde un navegador. Con Webmin, puedes gestionar cuentas de usuario, servicios de red, configuraciones de seguridad y, lo más importante para este artículo, cron jobs.

1. Instalar Webmin en Ubuntu/Debian:

Abrimos una terminal y ejecutamos los siguientes comandos:

En mi caso me faltaban algunas dependencias, estoy usando un Ubuntu 20.04, por lo que me mostro el siguiente error:

De forma manual procedí a instalar las dependencias:

Luego volví a ejecutar el comando:

Este proceso descarga e instala Webmin en tu sistema.

2. Acceder a la Interfaz Web:

Una vez que Webmin esté instalado, podemos acceder a la interfaz de administración a través del navegador, escribiendo:

Reemplazamos la URL con la dirección IP o el nombre de dominio del servidor utilizado.

En mi caso utilicé el dominio: https://jobs-virtual-machine:10000

3. Acceder a la Gestión de Cron Jobs

  1. Iniciamos sesión en Webmin: Cuando accedemos a Webmin en el navegador, se nos pedirá que iniciemos sesión. Usamos las credenciales de administrador del sistema.

  2. Accedemos a «Cron Jobs»: En el menú principal, buscamos la sección llamada «System». Dentro de esa sección, hacemos clic en «Scheduled Cron Jobs».

Podemos ver algo similar a la imagen a continuación:
El siguiente paso que veremos a continuación es como programar tareas diarias por ejemplo un reinicio diario a un equipo por SSH, usando WebAdmin y Python.

4. Diagrama General

5. Primera tarea automatizada

Para nuestra primera automatización vamos a realizar una tarea bastante simple, supongamos que tenemos un conjunto de servidores que necesitan ser reiniciados una vez por semana, realizar esto de forma manual podría resultar un poco tedioso, sin embargo, podemos conectarnos por SSH a través de Python usando el módulo Paramiko, y que ejecute un reinicio. Posterior a esto solo nos quedaría programar esta tarea en python, para que se ejecute por ejemplo todos los viernes y ya no tendríamos que preocuparnos por verificar todas las semanas en reiniciar o ejecutar estas tareas de forma manual, veamos cómo hacerlo.

Script para conexión a varios equipos SSH:

Para la demostración use una maquina Kali Linux suponiendo que sea el servidor, el script se puede modificar para que lea un conjunto de IP, desde un Excel y eso nos permitiría aplicar comandos a un grupo de equipos y ahorrar tiempo.

Con el objetivo de probar mi script hice uso de Thonny es un IDE simple, especialmente adecuado para principiantes que están empezando a aprender Python. Tiene una interfaz sencilla y viene con todo lo que necesitas para escribir y ejecutar código Python sin necesidad de configuraciones adicionales.

Instalar Thonny desde la terminal:

En la siguiente imagen se observa el IDE con las pruebas y resultados del script utilizado:

En el archivo Data.txt que es generado por el script, podemos ver que se realizó de manera correcta el proceso:

Como paso final ahora vamos a programar la tarea, para que todos los días a las 6:02 PM se ejecute un reinicio al equipo, lo podemos realizar desde el WebAdmin.

Los pasos a seguir se definen en la siguiente imagen:

  1. Ir a la Sección System.
  2. Ir a la Sección Scheduled Cron Jobs.
  3. Ejecutar tarea como usuario root.
  4. Comando que queremos ejecutar.
  5. Programación de fechas, horas, días del comando que vamos a ejecutar.
  6. Guardar y como recomendación verificar su correcto funcionamiento.

Para verificar que la tarea se ejecutó de forma automática y correcta podemos utilizar el siguiente comando:

La salida debe coincidir con la hora de nuestras programaciones:

Conclusión

En este artículo hemos aprendido cómo configurar y ejecutar cron jobs en Ubuntu, así como verificar su ejecución mediante el uso de logs y archivos de salida. Los cronjobs son herramientas poderosas para automatizar tareas en sistemas Linux, y conocer cómo monitorear su correcta ejecución es esencial para asegurar que los procesos automatizados se completen sin problemas.

Por otra parte, hemos visto como crear estas tareas de forma sencilla con el WebAdmin de Linux. Hay muchas más capacidades que podemos utilizar de esta serie de herramientas presentadas, sin embargo, la idea de este artículo es dar a conocer ideas sencillas que puedan aportar a los administradores de sistemas herramientas para su día a día.

Euribiel R Valdes
Euribiel R Valdes
Ingeniero en Electrónica y Telecomunicaciones con destacada experiencia en investigación, redes, sistemas basados en internet de las cosas y apasionado en el área de la ciberseguridad.
RELATED ARTICLES

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Blue Team

Red Team