Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ssh client in (bash) Schleife klappt nicht
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Wed Feb 23, 2011 2:00 pm    Post subject: ssh client in (bash) Schleife klappt nicht Reply with quote

Ich möchte auf n Rechnern, zu denen ich eine SSH Verbindung aufbauen kann, einen Remote Befehl ausführen. Hier exemplarisch "hostname" um zu sehen auf welchem Rechner der Befehl ausgeführt wird.

Die Liste der Hosts steht in der Datei "all.txt", jeweils ein Host je Zeile. Verbindungsaufbau klappt einzeln dank Schlüsseln sofort und ohne Nutzerinteraktion problemlos.

Allerdings klappt das nicht in folgender Schleife:

Code:
cat all.txt | while read c ; do ssh $c hostname  ; done


Da wird die Schleife ohne Fehlermeldung nach dem ersten Host beendet. Warum? Wie mach ichs richtig?
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5329

PostPosted: Wed Feb 23, 2011 2:05 pm    Post subject: Reply with quote

Funktioniert die schleife überhaupt richtig?
sprich was wird ausgegeben wenn du folgendes machst?
Code:
cat all.txt | while read c ; do echo "hostname: $c"   ; done

_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
slick
Bodhisattva
Bodhisattva


Joined: 20 Apr 2003
Posts: 3495

PostPosted: Wed Feb 23, 2011 3:01 pm    Post subject: Reply with quote

Dann gibt er alle Hostname aus der Datei aus.

Also ich hatte mal anfangs eine Fehlermeldung, die könnte man so interpretieren das er versucht hat alle Host-Zeilen nach der ersten als Befehl auf dem ersten Host auszuführen.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5329

PostPosted: Wed Feb 23, 2011 4:13 pm    Post subject: Reply with quote

also es kommen x-mal "hostname:<zeile aus text datei>" ausgaben?
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Wed Feb 23, 2011 4:16 pm    Post subject: Reply with quote

Versuch die ssh-Sache mal in einem Extra-Programm zu machen:

cat all.txt | while read c ; do ./execute-remote-script $hostname ; done

Damit sollte es zumindest nicht passieren, dass die folgenden SSH-Kommandos versucht werden auf der ersten Remote-Maschine auszuführen.

in execute-remote-script:
ssh root@$1 /path/to/cmd

Tobi
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6780

PostPosted: Wed Feb 23, 2011 5:50 pm    Post subject: Reply with quote

Vermutlich versucht ssh selbst von stdin zu lesen. Du musst also für ssh die Standardeingabe umleiten:
Code:
cat all.txt | while read c
do  ssh ... </dev/tty
done

Oder Du benutzt einen anderen Filedescriptor. Dann brauchst Du auch kein useless use of cat:
Code:
exec 3< all.txt && while read c <&3
do ssh ...
done
exec 3<&-
Back to top
View user's profile Send private message
lxg
Veteran
Veteran


Joined: 12 Nov 2005
Posts: 1019
Location: Aachen, Germany

PostPosted: Fri Feb 25, 2011 1:54 pm    Post subject: Reply with quote

Steht der Befehl (sofern er nicht nur aus einem Wort besteht) denn in Anführungszeichen?

Übrigens, folgende Variante würde ich empfehlen:

Code:
for c in $(cat all.txt); do ssh $c "hostname"; done


Und zum Testen:

Code:
MYHOST="example.com"; ssh $MYHOST "Befehl mit Parametern"

_________________
lxg.de – codebits and tech talk
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum