Ssh innerhalb einer while-Schleife: Unterschied zwischen den Versionen
JoKurt (Diskussion | Beiträge) |
Robi (Diskussion | Beiträge) (nowiki --> pre / Kommentare verbessert, Hinweise) |
||
Zeile 1: | Zeile 1: | ||
Wie benutze ich ssh innerhalb einer while-Schleife, ohne dass sie abbricht? | Wie benutze ich ssh innerhalb einer while-Schleife, ohne dass sie abbricht? | ||
− | Ich möchte hier nur ein Beispielscript einfügen, | + | Ich möchte hier nur ein Beispielscript einfügen, welches das Problem löst: |
Zeile 7: | Zeile 7: | ||
− | < | + | <pre> |
− | ## Datei mit IP Adressen oder Hostname wird per cat ausgegeben, mit grep werden Zeilen, die ein # beinhalten ignoriert und read | + | ## Datei mit IP Adressen oder Hostname wird per cat ausgegeben, |
− | cat | + | ## mit grep werden Zeilen, die ein # beinhalten ignoriert und dann |
+ | ## mit read in die Variable adresse eingelesen | ||
+ | |||
+ | cat datei_mit_IP_ADressen | grep -v "#" | while read -r adresse | ||
do | do | ||
− | ssh -x -a root@$adresse "reboot" & ##anstatt reboot kann natürlich jeder Befehl genutzt werden | + | ssh -x -a root@$adresse "reboot" & |
− | + | ##anstatt reboot kann natürlich jeder Befehl genutzt werden | |
− | </ | + | ## zurück zum Schleifenanfang und neue Adresse, bis die Datei abgearbeitet |
+ | </pre> | ||
+ | |||
+ | '''Achtung:''' in diesem Beispiel wird der ssh Befehl in den Hintergrund geschickt und somit | ||
+ | nicht auf das Beenden des Befehls gewartet bevor der nächste gestartet wird, hatt zur Folge, das | ||
+ | die ssh-Befehle auf alle Rechner fast gleichzeitig aktiviert werden. | ||
+ | '''Hinweis:''' es wird in diesem Beispiel davon ausgegangen, das an den Rechnern eine [[Einrichten von public keys mit ssh|passwortlose | ||
+ | Anmeldung mit ssh]]( hier als root) eingerichtet ist. | ||
+ | |||
---- | ---- | ||
+ | [[Category:Konsole]] |
Aktuelle Version vom 21. Februar 2008, 14:52 Uhr
Wie benutze ich ssh innerhalb einer while-Schleife, ohne dass sie abbricht?
Ich möchte hier nur ein Beispielscript einfügen, welches das Problem löst:
## Datei mit IP Adressen oder Hostname wird per cat ausgegeben, ## mit grep werden Zeilen, die ein # beinhalten ignoriert und dann ## mit read in die Variable adresse eingelesen cat datei_mit_IP_ADressen | grep -v "#" | while read -r adresse do ssh -x -a root@$adresse "reboot" & ##anstatt reboot kann natürlich jeder Befehl genutzt werden ## zurück zum Schleifenanfang und neue Adresse, bis die Datei abgearbeitet
Achtung: in diesem Beispiel wird der ssh Befehl in den Hintergrund geschickt und somit
nicht auf das Beenden des Befehls gewartet bevor der nächste gestartet wird, hatt zur Folge, das
die ssh-Befehle auf alle Rechner fast gleichzeitig aktiviert werden.
Hinweis: es wird in diesem Beispiel davon ausgegangen, das an den Rechnern eine passwortlose Anmeldung mit ssh( hier als root) eingerichtet ist.