Re: Bash-Skript, while-Schleife mit ssh
Tach auch! ;)
2011/3/22 Axel Birndt <towerlexa@gmx.de>
>> Mache:
>>
>> while read varzeile
>> do
>> # Nun ist die Zeile in der Variable varzeile.
>> echo "${varzeile}"
>> ssh user@serverurl "./befehl auf dem server mit ${varzeile}
>> übergeben"< /dev/null
>> done< daten.txt
>
> Die Lösung ist nur suboptimal, da dabei komplett stdin verbogen wird und es beispielsweise nicht mehr möglich ist ein PW einzugeben o.ä.
Stimmt. *ICH* brauche solche Schleifen aber, um auf vielen
Hosts eine identische Aufgabe zu erledigen. Da wäre ein
manueller Eingriff (PW eingeben, …) "tödlich".
> Außerdem ist es denkbar, dass man sich damit eine Endlosschleife gebaut hat.
Wie?
> Beispiel: Beim Connect auf den Remotehost erscheint die Frage "Public-Key" bestätigen yes/no. Wenn dannn immer Null "0" in die Eingabe geschrieben wird, kommt der Prozeß wohl nicht mehr zum Ende.
--($ ~)-- ssh lics < /dev/null
Pseudo-terminal will not be allocated because stdin is not a terminal.
The authenticity of host 'race-lics (10.0.1.46)' can't be established.
RSA key fingerprint is 78:e1:92:9d:b5:a0:f1:d6:9b:13:c7:16:8b:3d:cc:a6.
Are you sure you want to continue connecting (yes/no)? n
Please type 'yes' or 'no': no
Host key verification failed.
> Besser ist daher folgende Lösung:
>
>
> file=/home/user/xxxxfile
> exec 4< $file
> while read -u 4 varzeile ;
> do
> echo "$varzeile";
>
> done
Ja, die Lösung ist besser.
Alexander
--
↯ Lifestream (Twitter, Blog, …) ↣ http://alexs77.soup.io/ ; ↯
↯ Chat (Jabber/Google Talk) ↣ a.skwar@gmail.com , AIM: alexws77 ↯
Reply to: