Como eu disse recentemente,  caminhos relativos costumam dar dor de cabeça quando se está trabalhando com CronJobs. Já fui surpreendido algumas vezes com erros devido a isso. Por isso, eu sempre uso a estratégia de pegar o caminho do script que estou executando e concatenar ao caminho relativo que desejo usar.  Anteriormente, eu mostrei como fazer isso em Shell Script e agora estou postando o que faço nos meus scritps em Python.

from os import path

CURR_PATH = path.dirname(path.realpath(__file__))

print CURR_PATH

Rodrigo Lira,

Caminhos relativos já me deram muita dor de cabeça quando eu coloco um script para ser executado via CronJob. Como o script é executado de um caminho que não é a pasta dele, o output acaba sendo criado numa outra pasta.

A forma mais simples que achei para contornar essa situação é forçar o output a ser criado na pasta que o script está no disco. Contudo, essa localização pode mudar e não pode ser adicionada hardcode no script, logo ela tem que ser obtida dinamicamente.

#/bin/bash
SCRIPTPATH=$( cd $(dirname $0) ; pwd -P )

#usage
log_file=$SCRIPTPATH/log

echo "Logging" | tee -a $log_file