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 :

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 :
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_SERVER2.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
FILE_SERVER3.txt :
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
Pour cela :

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…!