EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ Shell Scripting ]

"standart input'tan okuyan ssh ile remote komut calistirma" - Barış Şimşek - (2006-04-01 01:18:28)   [3615]

Bilindigi gibi ssh remote komut calistirabilir:

ssh -l simsek gondor.enderunix.org ls -l

Eger asagidaki gibi bir while dongusu yardimiyla dosyadan okuyup uzaktaki sistemde komut calistiran bir betiginiz var ise bir sorun yasayacaksiniz.

cat ipler.txt | while read ip_adresi; do
ssh -l simsek $ip_adresi cat dosya.txt
done

Buradaki sorun su olacak: read stdin'den okur. Burada stdin olarak dosya verildi. Ancak ssh'de ayni zamanda stdin'den komut okumak isteyecektir (Dogal olarak prompt sunar ve stdin den komut alip execute eder). Bu durumda dosyadan okunacak veri ssh'e gidecek ve komut olarak calistirilmaya calisilacaktir. "While read" dongusu ise okuyamayacaktir. Bu nedenle betik bekledigimiz gibi calismayacaktir.

SSH'in stdin'den okumasini -n parametresi ile engellerseniz sorun kalmaz.

Arkadaşıma gönder , Ana Sayfa