ssh unterbricht while Schleife

Diskutiere ssh unterbricht while Schleife im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo Leute, für ein Netzwerk habe ich ein Script geschrieben, welches iterativ ein Programm via ssh auf einem entfernten Rechner ausführen...

  1. #1 Gast123, 19.03.2011
    Gast123

    Gast123 Guest

    Hallo Leute,

    für ein Netzwerk habe ich ein Script geschrieben, welches iterativ ein Programm via ssh auf einem entfernten Rechner ausführen soll.
    Code:
    #! /bin/bash
    #########################################
    #       /srv/scrips/recurse-wks         #
    #                                       #
    # Execute commands as root on all       #
    # remote workstations in the            #
    # ./.wks.list                           #
    #                                       #
    # (C) 2011 by Richard Neumann           #
    # under the terms of the GPL            #
    #########################################
    
    WKSLIST=`dirname $0`/.wks.list
    LOGFILE=/var/log/`basename $0`.log
    USAGE="\
    Usage: `basename $0` [commands]"
    
    if [ $EUID -ne 0 ]; then
            echo "***`basename $0`: You must be root to run this script!" 1>&2
            exit 1
    fi
    
    if [ $# -lt 1 ]; then
            echo $USAGE
            exit 1
    fi
    
    while read WKS; do
            echo "Executing \"$@\" on \"$WKS\"." | tee $LOGFILE
            ssh $WKS "$@" 
    done < $WKSLIST
    ./.wks.list:
    Code:
    wks-1
    wks-2
    barrechner
    Dabei sind wks-1 und barrechner nicht zu erreichen (das ist OK).
    Allerdings terminiert das Script nach der ersten erfolgreichen Ausführung von ssh.
    Code:
    [root@weinheim lsa]# /srv/scripts/recurse-wks echo foo
    Executing "echo foo" on "wks-1".
    ssh: connect to host wks-1 port 22: No route to host
    Executing "echo foo" on "wks-2".
    foo
    [root@weinheim lsa]# 
    
    Was passiert da?

    LG
    Schard
     
  2. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Erstmal zum Debuggen: Funktioniert es bei Dir, wenn Du die Zeile, in der 'ssh' ausgefuehrt wird, auskommentierst?
     
  3. #3 Gast123, 20.03.2011
    Zuletzt von einem Moderator bearbeitet: 20.03.2011
    Gast123

    Gast123 Guest

    Hallo rikola,

    ja, das funktioniert natürlich.
    Code:
    [root@weinheim scripts]# ./recurse-wks echo FOO
    Executing "echo FOO" on "wks-1".
    Executing "echo FOO" on "wks-2".
    Executing "echo FOO" on "barrechner".
    [root@weinheim scripts]# 
    
    Ich habe auch schon versucht die Ausgaben (stdout / stderr) von ssh umzuleiten.
    Das verhindert aber nicht den Abbruch der Schleife nach dem erfolgreichen ausführen von ssh.

    MfG

    EDIT:
    Notiz an mich selbst: Das nächste Mal besser googlen:
    http://www.unix.com/shell-programming-scripting/38060-ssh-break-while-loop.html
    die Lösung:
    Code:
    ssh -n
    Problem gelöst. :D
     
Thema:

ssh unterbricht while Schleife

Die Seite wird geladen...

ssh unterbricht while Schleife - Ähnliche Themen

  1. Server unterbricht seine Netzwerkverbindung

    Server unterbricht seine Netzwerkverbindung: Hallo, ich verwalte ein kleines, internes Netzwerk mit etwa 20 Rechnern. Unser Server ist ein Dell Poweredge 2250 mit drei Netzwerkkarten:...
  2. do-while Schleife

    do-while Schleife: Hi, Ich sehe bei Bash immer nur: while [ Bedingung ]; do Aktion done Gibt es auch eine umgekehrte Schleife? Also do...
  3. while

    while: Ich hoffe jetzt mal das die Frage noch nicht gestellt wurde! Wieso funzt das nicht? Es ist eine einfache ja nein frage, bei der verhindert werden...
  4. while loop - ich blicks nicht

    while loop - ich blicks nicht: Moin ich hab da irgendwie ein Problem, ich raffs nicht so ganz was da falsch läuft. Vielleicht kann mir einer von euch kurz sagen was da falsch...
  5. while [ 1 = 1 ] ...Anfängerfrage

    while [ 1 = 1 ] ...Anfängerfrage: Hi, Warum gibt: while [ 1 = 1 ] ; do echo -n '.' && sleep 1 ; done ..mal einen und mal zwei Punkte auf einmal aus? Müsste es nicht immer nur...