Pb de crontab

breton_a Messages postés 10 Statut Membre -  
 breton_a -
Bonjour les gens.

G un petit souci avec crontab.

Ya un petit script que je souhaite executer toutes les 5 min.
Ce script, lancé a la main, marche correctement.

Par contre, quand je le lance depuis le crontab, il ne finit pas de s'executer.
En faisant "ps -aux", je vois qu'il me lance le script 3 fois alors que je ne l'appelle qu'une seule fois (il n'y a pas de recurrence dans mon script).
D'après le "ps -aux", il y a un probleme au niveau d'une des deux boucles "while" (il apparait un cut -d' ' -f5420), mais ce probleme de boucle n'apparait pas quand on lance le script a la main.

donc le probleme semble venir d'une des boucles, mais je vois où.. :(

#! /bin/sh

PARAM="emplacement/param.txt"
SERVEUR="emplacement/serveur.txt"

echo $1 | tr '/' ' '  > $PARAM
param=`wc -w $PARAM | tr ' ' '/' | cut -d'/' -f1`
i=2
while [ "$param" == "" ]
do
param=`wc -w $PARAM | cut -d' ' -f${i}`
i=`expr $i + 1`
done

var[1]=`more $PARAM | cut -d' ' -f1`
i=1
while [ "${var[${i}]}" != "" ]
do
    i=`expr $i + 1`
    var[${i}]=`more $PARAM | cut -d' ' -f${i}`
done

echo "" > $SERVEUR
n=1
while [ "${var[${n}]}" != "" ]
do
ip=`ping -c 1 ${var[${n}]} | head -1 | tr '(' '/' | tr ')' '/' | cut -d'/' -f2`
ping -c 1 "${var[${n}]}" | grep "round-trip"
if [ $? == "0" ]
then {
     echo "${var[${n}]}/${ip}/1/" >> $SERVEUR
     }
else {
     echo "${var[${n}]}/${ip}/0/" >> $SERVEUR
     }
fi
n=`expr $n + 1`
done

rm $PARAM


si qqun peut me depanner... :)

2 réponses

kmf
 
Mets les chemins absolus comme "/bin/echo" au lieu de "echo" etc. car le script effectue dans crontab n'a pas ton environment avec PATH etc.
0
breton_a Messages postés 10 Statut Membre
 
g deja mis pas mal de script dans crontab et ca n'a jamais posé de probleme.
par contre, c'est vrai que pour tous les fichiers créés comme $SERVEUR, j'indique bien le chemin absolu.
0
kmf
 
Ca ne peut pas etre un truc tout simple ?
#! /bin/sh

si tu enleve le blanc derriere le "!" ou si tu mets "bash" au lieu de "sh" ?
Bien que "sh" soit un lien vers "bash" le comportement au niveau syntax est different si on l'appelle avec sh ou bash. Je ne sais pas mais c'est facile a essayer.
0
breton_a > kmf
 
ca marche toujours po :(
0
breton_a Messages postés 10 Statut Membre > kmf
 
ou plutot ca marche a la main mais pas avec crontab ;)
0
breton_a
 
Ca y est, "probleme" resolu...
Après de nombreux essais, je me suis rendu compte qu'iul suffisait juste de remplacer la commance "more" par l
0
breton_a
 
voila le message complet :

Ca y est, "probleme" resolu...
Après de nombreux essais, je me suis rendu compte qu'iul suffisait juste de remplacer la commance "more" par la commande "cat" car la commande "more" m'incluait des ":" et le chemin du fichier dans ma variable "var".

Voila voila.

++
0