oi-polloi
Goto Top

Bash while read Line Problem Frage

Hallo,

ich hab mal eine kleine Verständnisfrage -problem mit einer while read Line Schleife unter Linux.
Ich habe folgendes Skript:
'! /bin/bash

DATEI1=host1.txt
DATEI2=host2.txt

if [ $1 = "1" ]; then
while read LINE; do
rsh $LINE -l root "/tmp/./skript.sh"
done < $DATEI1
elif [ $1 = "2" ]; then
while read LINE; do
ping -c 2 $LINE
done < $DATEI2
fi


wenn ich das Skript mit der Variablen 2 starte, pingt es alle PCs in der host2.txt Datei durch. Es geht.
Wenn ich aber es mit der Variablen 1 starte, führt es nur den rsh-Befehl beim ersten PC aus und bricht dann ohne Fehlermeldung ab. Auch ein set -x hat mir keine weiteren Erkenntnisse gebracht.
Warum bricht das Skript nach dem ersten rsh-Befehl ab und beim pingen macht es was es soll?

Danke face-smile

Content-Key: 139591

Url: https://administrator.de/contentid/139591

Printed on: April 24, 2024 at 02:04 o'clock

Member: kaiszy28
kaiszy28 Mar 31, 2010 at 10:35:19 (UTC)
Goto Top
Hallo,

was passiert den wenn Du rsh für einen Hosts mit den von Dir angegebenen Parametern aufrufst ? Was steht in "tmp/skript.sh" ?

CU,
Kai.
Member: oi-polloi
oi-polloi Mar 31, 2010 at 11:21:10 (UTC)
Goto Top
in dem /tmp/skript.sh wird ein Ordner angelegt, es gibt ne Meldung das der Ordner schon existiert, das sollte aber nicht das Problem sein, oder, dann wird das nfs gemountet, Daten kopiert, chown angepasst usw danach wird das nfs umountet und das wars.

Ha, danke dir. Du hast mich auf ne Idee gebracht.
Ich habe einfach den rsh $LINE -l root "/tmp/./skript.sh" Befehl in den Background geschoben also : rsh $LINE -l root "/tmp/./skript.sh" &
und jetzt gehts, erst mal face-smile
muss noch etwas mehr testen, aber danke für den Ideenanstoß face-smile
Member: kaiszy28
kaiszy28 Mar 31, 2010 at 13:46:04 (UTC)
Goto Top
Hallo!

Sonst frage einfach wieder nach ;)

CU,
Kai.