Created: 2021-09-24 14:48 | Updated: 2021-09-24 14:48 |
Um grande amigo meu teve um probleminha ao executar um programa em Python que acessa um banco de dados Oracle quando ele era executado a partir do agendador de tarefas (cron). Quando ele me pediu ajuda, eu lhe dei algumas alternativas que funcionaram no Linux Debian.
Nos exemplos, vou assumir que programa a ser executado é /opt/programa.py, que ele necessita da variável de ambiente TESTE e que ele deva ser executado pelo cron do usuário. Tendo isso em mente, vamos considerar também que ele será executado a cada minuto.
A primeira opção é criar um comando no cron que configure a variável de ambiente antes de executar o programa (crontab -e):
0-59/1 * * * * export TESTE=XXXX && /opt/programa.py
Neste caso, a variável de ambiente só estará disponível para a execução do script em questão.
Segunda opção: se mais scripts executados no cron precisam da variável de ambiente em questão, então podemos configurar a variável de ambiente no início do arquivo crontab. Exemplo (crontab -e):
TESTE=YYYYYY
0-59/1 * * * * /opt/programa.py
Terceira opção: carregar a variável de ambiente no programa (em Python):
import os
os.environ['TESTE']='XYZ'
Quarta opção: adicionar as configurações de variáveis no arquivo /etc/environment. No Debian, este é o lugar para colocar as variáveis para todo o sistema.
Por hoje, é só.