2016-05-06 9 views
0

bashを使ってMikrotikデバイスのバックアップスクリプトを実行しています。私は、ファイルから読み込むwhileループを使いたい。Bash Whileループがループしていません

から読み込むファイルの内容は次のようになります。ここでは

1.1.1.1 router1 
2.2.2.2 router2 

は私のサンプルスクリプトです:

while read -r ip name 
do 

sshpass -p "pass" ssh -o StrictHostKeyChecking=no export\@$ip "/export;/quit" 2> errors.log >> $name.export 

done < iplistandnamefile 

問題はスクリプトのみ第一のIPアドレスのために働くだろうということですiplistandnamefileファイルでは、2番目のIPにループしません。

提案がありますか?

+0

'while'ループが正常に動作し、' sshpass'コマンドの構文のわからない、適切な構文は、 'sshpass -p "パス" sshの-o StrictHostKeyChecking =のない、@ホストcommand_to_run'です。あなたは '輸出'で何を達成しようとしていますか? – Inian

+0

iveがリストの最初のIPのエクスポートファイルを生成したので、sshpassが動作しています。 yah exportは実行したいコマンドです。 whileループを使いたいので、ファイルを読むときに複数の変数を使うことができます。現在のところ、IPアドレスだけを含むファイルから読み込むループスクリプトがあります。 – John

答えて

0

sshはsshコマンドに-n追加STDIN

読みにデフォルトとしてファイルの残りの部分を食べています。

sshpass -p "pass" ssh -no StrictHostKeyChecking=no [email protected] command_to_run 
+0

これは動作しますが、-nフラグの機能を完全に把握できません。 – John

+0

-nは/ dev/nullをstdinにリダイレクトしますが、それがなければ、ファイルの内容全体がsshにstdinになります – Cwissy

関連する問題