2016-05-28 6 views
0

私は6つのIPアドレスを持っていますが、6つのうち2つだけが有効です。私はsshpassを使って各IPをテストするシェルスクリプトを書いた。自動化のsshpass出口

問題は、スクリプトがシステム内のログ(Ciscoスイッチ)を動作させているIPに到達し、そこにとどまり、残りのIPをテストするためにループを継続しないことです。私がシステムに "exit"と入力すると、ループを続行します。

ログインが成功したら、スクリプトは自動的にログに記録されたシステムから抜け出し、残りのIPのテストを続行できますか?

は/ usr/binに/ sshpass -p $ sshのADMINPASS -oStrictHostKeyChecking =いいえ-oCheckHostIP =いいえ-t $ ADMINLOGIN @ $ IP出

私はIPが働いており、その上にいるかを把握するには、exitステータスを使用することができますうまくいかなかった。

答えて

1

IPが生きているかどうかを最初にテストしてから、それを 'ssh'して助けてください。ループを使用しているかどうかはわかりませんが、ループは良い選択です。 ip-1 ip-2 ip-3 ip-4 ip-5 ip-6; do ping -c 1 -w 3 $ f; if [$? -eq 0];次にエコーOK。 ssh_pass $ f your_command;そうでなければecho "IP is NOK"; fi;完了したら あなたがテストしているものに応じて 'exit'コマンドを追加することもできます。 'exit 0'はOK、 'ssh'コマンド、 'exit 1' NOKです。