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ó.