Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2008, 11h06   #1
Invité de passage
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 3
Points : 3
Par défaut 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
twistope est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 15h08   #2
Invité de passage
 
Inscription : avril 2007
Messages : 12
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 12
Points : 3
Points : 3
c'est bon j'ai trouvé

j'ai modifié la boucle for établissant la connexion vers la machine de rebond et ca fonctionne.

voici la modif pour ceux que ca interesse (j'ai mis la modif en gras):

Code :
1
2
3
4
5
6
7
8
9
recup_data machineC $1
for i in `echo $comm | xargs ssh -t machine_rebond "ssh -t noc@machineC -i fichier.id_rsa"`
        do
                if [ $i != "0,0000000000e+00" ]
                        then array_C[$n]=$i
                        let n=n+1
                        let m=m+1
                fi
done
j'ai du précisé l'emplacement du fichier.id_rsa car il ne le trouvait pas
twistope est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h55.


 
 
 
 
Partenaires

Hébergement Web