script munin via double connexion ssh
bonjour a tous,
j'essai d'ecrire un script bash qui va collecter des données rrd sur différentes machines en executant un fichier sur les machines cible suivant des options indiqué en locale. mon pb c'est que pour l'une d'entre elle je dois rebondir sur une autre machine pour l'atteindre et j'arrive pas a obtenir ce que je souhaite...
voila le script en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #!/bin/bash
set -x
n=0
a=0
b=0
c=0
recup_data()
{
chemin="/usr/local/progs/munin/lib"
case $1 in
machineA)
comm="$chemin/exports d $2 A |grep \\\"<v>\\\"|sed -e \\\"s/.*\>\<v\>//g\\\" -e \\\"s/\<\\\/v\>.*//g\\\" -e \\\"s/\\\./\,/g\\\
""
;;
machineB)
comm="$chemin/exports d $2 B |grep \\\"<v>\\\"|sed -e \\\"s/.*\>\<v\>//g\\\" -e \\\"s/\<\\\/v\>.*//g\\\" -e \\\"s/\\\./\,/g\\\
""
;;
machineC)
comm="$chemin/exports d $2 C |grep \\\"\<v\>\\\"|sed -e \\\"s/.*\>\<v\>//g\\\" -e \\\"s/\<\\\/v\>.*//g\\\" -e \\\"s/./,/g\\\""
;;
esac
}
recup_data machineA $1
for i in `echo $comm|xargs ssh noc@machineA`
do
if [ $i != "0,0000000000e+00" ]
then array_A[$n]=$i
n=$((n+1))
a=$((a+1))
fi
done
a=$((a-1))
n=0
recup_data machineB $1
for i in `echo $comm|xargs ssh noc@machineB`
do
if [ $i != "0,0000000000e+00" ]
then array_B[$n]=$i
let n=n+1
let b=b+1
fi
done
let b=b-1
n=0
recup_data machineC $1
for i in `ssh -t machine_rebond "echo $comm|xargs -p ssh -t noc@machineC"`
do
if [ $i != "0,0000000000e+00" ]
then array_C[$n]=$i
let n=n+1
let c=c+1
fi
done
let c=c-1
echo "data A $1"
for i in `seq 0 $a`
do echo ${array_A[$i]}
done
echo "data B $1"
for i in `seq 0 $b`
do echo ${array_B[$i]}
done
echo "data C $1"
for i in `seq 0 $c`
do echo ${array_C[$i]}
done |
quelqu'un paut-il m'aider la dessus ?
si je n'ais pas été assez claire, dites le, j'essairai d'eclaircir les choses :)
d'avance merci
tophe