2010-05-19 7 views
0

J'ai un script shell qui exécute genReport.sh afin de créer un rapport au format .pdf, et il fonctionne parfaitement lorsqu'il est exécuté depuis la commande ligne. La source de données pour le rapport est une base de données ClearQuest. Lorsqu'il est exécuté à partir d'un travail CRON, le fichier .pdf est créé, sauf que seuls les divers en-têtes de rapport et de colonne sont affichés et que les données du rapport sont manquantes. Aucune erreur n'a été signalée à STDERR pendant l'exécution du script.Le rapport Birt 2.5.2 génère des données de table vides lorsqu'il est exécuté à partir d'un travail cron

Cela cris "variable d'environnement" pour moi.

Actuellement, le script shell définit comme suit:

CQ_HOME 
BIRT_HOME 
ODBCINI 
ODBCINST 
LD_LIBRARY_PATH 

Si c'est une chose environnementale, quelle partie de l'environnement que je manque?

Répondre

0

Sans voir les scripts, c'est seulement des conjectures. Il pourrait s'agir d'un problème de citation ou de quelque chose ayant un lien avec un fichier ou un exécutable qui devrait être absolu. Souvent, le problème est que les répertoires listés dans $PATH sont différents dans l'environnement de cron que dans celui de l'utilisateur. Une chose que vous pouvez faire pour aider dans le diagnostic est d'ajouter cette ligne à votre script:

env > /tmp/someoutputfilename.$$ 

et exécuter le script à partir de la ligne de commande et de cron et comparer.

0

La magie pour effectuer cette exécution s'est révélée être l'évaluation de la sortie de la commande clearquest -dumpsh, qui à son tour nécessitait que la variable TZ soit définie. Cette commande génère une douzaine de variables.