ssh unterbricht while Schleife

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Gast123, 19.03.2011.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. 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?
     
  4. #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...