2017-04-01 3 views
0

im ayant le problème qu'un script bash ne s'exécute pas à partir de cron. Quand je l'exécute en tant que root à partir du cli, cela fonctionne bien. Comme vous pouvez le voir, j'écris dans un fichier txt lorsque le script est terminé. Ceci est également fait lorsque le script s'exécute à partir de cron, seul le dmp Oracle n'est pas sauvegardé (et évidemment pas compressé). Le travail est fait extrêmement rapide, donc je suppose qu'il ne fait pas l'exportation d'oracle ...Cron n'exécute pas correctement le script shell

Merci pour votre aide!

backup.sh

#!/bin/bash 
#makes an Oracle backup and zips the created file 
TIME=`date +%F_%H:%M:%S` 
FILENAME=Backup-$TIME 

exp userid=user/password file=/home/user/DatabaseBackup/$FILENAME.dmp 
zip /home/user/DatabaseBackup/$FILENAME.zip /home/user/DatabaseBackup/$FILENAME$ 
find /home/user/DatabaseBackup/ -mtime +0 -type f -delete 

echo "Backup completed:" `date +%F_%H:%M:%S` >> /home/user/scripts/logBackup.txt 
#END 

crontab -e 26 * * * * /home/user/scripts/backup.sh

+1

Ajouter le chemin d'accès complet aux exécutables (date, exp, zip, find). – Cyrus

+1

Vous devez capturer la sortie du travail cron (stdin et stderr) avant de demander de l'aide, car tout message d'erreur trouvé dans cette sortie est susceptible de vous faciliter la recherche de la cause ou de vous aider. Les tâches s'exécutant dans 'cron' peuvent avoir un environnement différent, et il est probable que votre problème provienne d'une différence de' PATH' ou d'une autre variable sur laquelle les programmes que vous utilisez dépendent. – Fred

+0

Fred1 Vous avez raison, il est préférable de vérifier la sortie des programmes appelés! Je fais et regarde ce qui ne va pas – helmut1978

Répondre

0

Ok, ce que je fait est:

J'ai ajouté

>> /home/user/cron.txt 2>&1 

ceci à ma déclaration de cronjob, avec ceci j'ai maintenant la sortie du cornjob.

Avec cela, il était facile de savoir que certaines variables evironmet pour Oracle étaient absents ...

Merci pour toute aide fournie!