Bonjour,
Sur 3 serveurs distincts, je souhaite faire un "ls -al" de 2 fichiers "file1" et "file2" que je mets dans un fichier FILE.txt :
Fichier FILE.txt :
De la même manière je fabrique un fichier SERVER.txt contenant les 3 serveurs en question et j'imagine une boucle while qui permet de lire ce fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 file1 file2
Fichier SERVER.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SERVER1 SERVER2 SERVER3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while read Serv; do echo $Serv done < SERVER.txt
Je me sers donc de cette boucle while pour y insérer une seconde boucle permettant de lire FILE.txt pour chaque ligne de SERVER.txt.
Le but est d'aller faire le "ls -al" pour les 2 fichiers sur les 3 serveurs et d'obtenir au final les 3 fichiers :
FILE_SERVER1.txt :
FILE_SERVER2.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 -rw-r--r-- 1 kevin kevin 21 Oct 13 12:02 file1 -rw-r--r-- 1 kevin kevin 89 Oct 10 04:36 file2
FILE_SERVER3.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 -rw-r--r-- 1 kevin kevin 37 Oct 13 13:10 file1 -rw-r--r-- 1 kevin kevin 45 Oct 10 09:01 file2
Pour cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 -rw-r--r-- 1 kevin kevin 11 Oct 09 14:09 file1 -rw-r--r-- 1 kevin kevin 51 Oct 07 08:30 file2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 while read Serv; do while read File; do ssh $Serv 'ls -al $File' done < FILE.txt >> FILE_"$Serv".txt done < SERVER.txt
Sauf que je n'obtiens pas la totalité : uniquement 3 fichiers avec le "ls -al" de file1 mais pas du second file2, comme s'il n'y avait qu'un passage pour la seconde boucle.
Quelque chose m'échappe…!
Partager