bonjour,
je fais un script dans le fichier fichier.sh sur unix, quand je fais excuter fichier.sh manuellement, il marche très bien. Mais quand je le fais mon crontab, il n'est pas exécuté ( il ne marche pas ).
sincères remerciments
lastmagik
bonjour,
je fais un script dans le fichier fichier.sh sur unix, quand je fais excuter fichier.sh manuellement, il marche très bien. Mais quand je le fais mon crontab, il n'est pas exécuté ( il ne marche pas ).
sincères remerciments
lastmagik
C'est sûrement dû au fait que crontab ne lance pas les scripts dans le même environnement que celui de l'utilisateur.
- Voir le manuel de crontab (man crontab).
- Un aperçu du script permettrait de mettre le doigt sur ce qui cloche.
bonjour fransoo,
ci-dessous le le script, dans fichier.sh
file1=`ls -ltr | awk -F" " '{print $9}' | tail -1`
grep "AB" $file1 >> file2
exit
et ci dessous le crontab
58 * * * * /osp/psmf/hds/apache/logs/ttin_test.sh
beaucoup de mercis
lastmagik
et ci dessous le vraie crontab
58 * * * * /osp/psmf/hds/apache/logs/fichier.sh
merci bcp
lastmagik
C'est plus lisible avec les 'code tags' (#)
j'ajouterais un "cd /osp/psmf/hds/apache/logs" (si c'est bien là qu'on doit faire le 'ls' et que se trouve "file2") au début pour assurer le coup.
Il faudrait chercher un "file2" dans le répertoire personnel (/home/<user>) car je crois que c'est là qu'on a des chances de le trouver...
bonjour fransoo,
au début de mon script j'ai fait
et le script marche bien mais dans le cript il rencontre
Code : Sélectionner tout - Visualiser dans une fenêtre à part cd /osp/psmf/hds/apache/logs
il n'éxécute pas cette condition ! ?? pourtant manuellement le script marche correctement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if [ $vZebra2 -ne 0 ] then ... ..... else ... ..... fi
merci beaucoup
lastmagik
bonjour fransoo,
j'ai un code fichier.sh qui s'éxécute bien manuellement mais il ne s'execute pas correctement avec crontab.
Suite à ton conseil j'ai fait au début de mon code
alors maintenant dans mon crontab le code mache très bien.cd /osp/psmf/hds/apache/logs
Mais le probleme c'est que quand il rencontre mon instruction de condition if il s'arrête.
je ne comprend pas pourquoi manuellement çà marche, mais avec crontab çà marche aussi mais quand il rencontre mon instruction de condition if il s'arrête ?let vZebra2=`wc -l fileZebra2 | awk -F" " '{print $1}'`
if [ $vZebra2 -ne 0 ]
then
... .....
else
... .....
fi
merci beaucoup
lastmagik
Pourrait avantageusement être remplacé par
Ce qui évite un appel à awk (qui n'est sûrement pas dans le PATH quand le script est lancé par cron).
Code : Sélectionner tout - Visualiser dans une fenêtre à part vZebra2=$(wc -l <fileZebra2)
Accessoirementpeut s'écrire avec l'évaluation arithmétique:
Code : Sélectionner tout - Visualiser dans une fenêtre à part if [ $vZebra2 -ne 0 ]
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ((vZebra2))
Pour mes futurs codes j'ai besoin de utiliser awk
Que dois je faire dans mon code ci-dessous pour que crontab retrouve le chemin avec awk
est ce que cette forme d expression ci-dessous n est pas compatible avec crontab
Code : Sélectionner tout - Visualiser dans une fenêtre à part let vZebra2=`wc -l /osp/psmf/hds/apache/logs/fileZebra2 | awk -F" " '{print $1}'`
sincères remerciments
Code : Sélectionner tout - Visualiser dans une fenêtre à part if [ $vZebra2 -ne 0 ]
lastmagik
Partager