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 :
quelqu'un paut-il m'aider la dessus ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
si je n'ais pas été assez claire, dites le, j'essairai d'eclaircir les choses
d'avance merci
tophe
Partager