Cómo programar scripts de Python como trabajos cron con Crontab

En este artículo, discutiremos cómo programar scripts de Python con crontab.

La utilidad de trabajo Cron es un programador de trabajo basado en el tiempo en sistemas operativos similares a Unix. Cron permite a los usuarios de Linux y Unix ejecutar comandos o scripts en una fecha y hora determinadas. Uno puede programar scripts para que se ejecuten periódicamente. El crontab es una lista de comandos que desea ejecutar en un horario regular, y también el nombre del comando utilizado para administrar esa lista. cron es el proceso del sistema que realizará automáticamente las tareas de acuerdo con un programa establecido.

Empezando

A continuación se muestra un sencillo script de Python que envía un mensaje de notificación para recordar al usuario que beba agua. Estaremos programando este script para enviar una notificación cada 2 horas. (la secuencia de comandos se prueba solo para sistemas basados ​​en Linux, pero el proceso de programación será similar con cualquier secuencia de comandos)

Python3

#!/usr/bin/env python3
#-*- coding: utf-8 -*-
  
import subprocess
  
def sendmessage(message="drink water"):
    subprocess.Popen(['notify-send', message])
    return
  
if __name__ == '__main__':
    sendmessage()

Nota:  #!/usr/bin/python3 (que especifica la ruta del intérprete del script) es necesario si desea que el script sea ejecutable. Suponiendo que hayamos guardado este script como my_script.py en nuestro directorio de inicio, podemos hacerlo ejecutable ingresando el siguiente comando en nuestra terminal:

$ sudo chmod +x my_script.py

Podemos probar nuestro script si funciona correctamente:

./my_script.py

Esto enviará una notificación como el mensaje «beber agua».

La expresión de programación crontab tiene las siguientes partes:

Para programar la ejecución de nuestro script, debemos ingresar la expresión de programación crontab en el archivo crontab. Para hacer eso, simplemente ingrese lo siguiente en la terminal:

crontab -e

Es posible que se le pida que seleccione un editor, elija nano y agregue la siguiente línea al final del archivo crontab abierto:

* */2 * * * /home/$(USER)/my_script.py

donde $(USUARIO) se puede reemplazar con su nombre de usuario. Guardar los cambios y salir. Esto programará nuestro script de Python para que se ejecute cada 2 horas.

crontab -l

Hay algunas cosas a tener en cuenta antes de programar trabajos cron:

  • Todos los trabajos cron se programan en la zona horaria local en la que opera el sistema donde se programan los trabajos. Esto podría ser problemático si los trabajos se programan en servidores con personal multinacional que lo utiliza. Especialmente si los usuarios también pertenecen a países que siguen la práctica del horario de verano.
  • Todos los trabajos cron se ejecutan en sus propias sesiones de shell anónimas y aisladas y su salida a STDOUT (si corresponde) debe dirigirse a un archivo si deseamos verlos.
  • Todos los trabajos cron se ejecutan en el contexto del usuario para el que fueron programados. Por lo tanto, siempre es una buena práctica proporcionar una ruta absoluta a los scripts y archivos de salida para evitar confusiones y desorden.

Publicación traducida automáticamente

Artículo escrito por ayush.verma16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *