Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

638
Vistas
Variables de entorno cuando el script de python se ejecuta mediante cron

He estado mirando otras preguntas de desbordamiento de pila, pero no pude hacer que ninguna funcionara. Tengo un script de python que usa variables de entorno. Este script funciona exactamente como se planeó cuando se ejecuta directamente; sin embargo, me gustaría ejecutarlo como un trabajo cron cada minuto por el momento.

Actualmente en mi directorio cron.d tengo un archivo llamado scrapers que contiene:

 * * * * * root /usr/bin/python3.5 /code/scraper.py

Esto ejecuta la secuencia de comandos de python pero la secuencia de comandos falla ya que en la secuencia de comandos utilizo dos variables de entorno.

Leí que debería agregar SHELL=/bin/bash al archivo cron, así que lo hice, pero esto no ayudó.

 SHELL=/bin/bash * * * * * root /usr/bin/python3.5 /code/scraper.py

luego leo

En el crontab, antes de ordenar, agregue . $HOME/.perfil.

 SHELL=/bin/bash * * * * * . $HOME/.profile; root /usr/bin/python3.5 /code/scraper.py

pero esto hizo que el cron dejara de ejecutarse por completo. ¿Cuál es la mejor manera de 'enviar' las variables env al cron?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En lugar de ejecutar todo el ~/.profile , lo que haría sería mover las variables que deben compartirse entre sus trabajos cron y la cuenta que tiene el perfil, luego las buscaría en ~/.profile y en el cron trabajo.

El último intento que muestra en la pregunta no tiene el formato correcto. La identificación del usuario debería aparecer justo después de la información de programación, pero ha agregado la fuente del perfil antes de la identificación del usuario, lo que seguramente no puede funcionar.

Aquí hay una configuración de ejemplo que he probado aquí:

 */1 * * * * someuser . /tmp/t10/setenv && /usr/bin/python /tmp/t10/test.py

Lo configuré para que se ejecute cada minuto con fines de prueba. Reemplace someuser con algo que tenga sentido. El script /tmp/t10/setenv que usé tenía esto:

 export FOO=foovalue export BAR=barvalue

El archivo /tmp/t10/test.py tenía esto:

 import os print os.environ["FOO"], os.environ["BAR"]

Mi cron me envía por correo electrónico el resultado de los scripts que ejecuta. Recibí un correo electrónico con esta salida:

 foovalue barvalue
over 4 years ago · Santiago Trujillo Denunciar

0

Puede configurar la variable env en línea:

* * * * * root ENV_VAR=VALUE /usr/bin/python3.5 /code/scraper.py

Otra forma es usar honcho para pasar un archivo con variables env.

honcho -e /path/to/.env run /code/scraper.py

over 4 years ago · Santiago Trujillo Denunciar

0

Puede especificar sus dos variables de entorno por esto:

 * * * * * root env A=1 B=2 /usr/bin/python3.5 /code/scraper.py

env es un programa del sistema que ejecuta un programa específico con variables adicionales:

 $ env A=1 B=2 /bin/sh -c 'echo $A$B' # or just 'sh': would search in $PATH 12
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda