J'ai un code comme ceci:Débogage mon application Cron
set -e
set -x
folderName=$(echo `date +%Y/%m/%d/`);
fileName=x.x.x.x.x.x.x.log
cp x.x.x.x.x.x/$1 $fileName
gzip $fileName
s3cmd put $fileName.gz s3://x.x.x.x.x/$folderName
rm $fileName.gz
Cela fonctionne bien si je lance comme ceci:
./shell logfilelocation
Et quand j'ajouté dans la crontab comme ceci:
* * * * * /home/x.x.x/testing/s3 -f x.x.x.log >> /tmp/mys3Log
Et j'ai attendu! Le fichier mys3Log
est créé. Mais il n'y a pas de contenu dedans! Je m'attends à ce que le résultat de l'exécution de la commande (comme j'ai utilisé set -e ; set -x
dans mon code) devrait aller dans le fichier mys3Log
pendant que je fais une redirection là.
Mais quelque chose ne va pas. Je suis très nouveau pour bash programmation et cron.
Où est-ce que je fais l'erreur?
Merci d'avance.
La ligne 'la source ~/.bashrc || source/etc/profile' devrait être ajouté dans le fichier cron? – sriram
Merci pour la réponse, vous n'avez pas répondu à ma question commentaire. – sriram
Je reçois une erreur en tant que 's3cmd: commande non trouvée' dans mon fichier journal cron. – sriram