2016-07-20 25 views
0

私はIPアドレスのリストを持っています。私の最終目標はそれぞれをsshで1つずつリセットすることです。私はLinux/Bashを使うように頼まれましたが、これはあまりよく知られていません。私のコードは今、リストから最初のIPを取り出してそれに接続しますが、それは決してそのポイントを超えて移動しません。問題は、read oneip3doコードの間にあると私は信じています。どんな助けでも大歓迎です。bashを使って '読み込み中'を使ってリストを反復する

次のように私はこのスクリプトを実行する方法は、次のとおりです。(私は別のテキストファイル内のIPアドレスのリストを持っている):

./runscript.txt ip_list.txt 


while read oneip3 
do 
(sleep 5 
echo "yes\r" 
sleep 3 
echo -e "password\r" 
sleep 3 
echo -e "reset\r" 
sleep 3 
echo -e "yes\r" 
sleep 20 
echo -e "\r" 
) | ssh -t -t -oHostKeyAlgorithms=+ssh-dss [email protected]$oneip3 
done < $1 
+1

最初の 'echo'の' -e'オプションがないようです。それ以外に、リモートホストへの接続時にどのプログラムが実行されるかわからないため、問題の原因を説明するのは難しいです。 – chepner

+0

'ssh'はここではサブシェルグループからの読み込みであり、' read'で共有されているstdinからの読み込みではないので、この質問は再開されました(これはシェルではありません)。その他の質問。 –

+1

@ValleyDigitalホストキーの確認やパスワードの入力が掛かっていませんか? stdinのような答えでパイプすることはできません。 '-o StrictHostKeyChecking = no'を使用してホストのキーチェックを無効にし、認証のためのキーペアを設定してから、もう一度やり直してください。 –

答えて

0

あなたはSSH引数を提供していませんでした。したがって、対話シェルを開きます。 最初のマシン上で立ち往生する十分な理由です(多分他の理由がある...)

あまりにも良い縫い目をStrictHostKeyCheckingについてのコメントに

... | ssh -t -t -oHostKeyAlgorithms=+ssh-dss "[email protected]$oneip3" pwd 

その他の発言(あなたの場合のデバッグにこれを試してみてください

関連する問題