サーバA
192.168.1.201(プライマリ)
192.168.1.203(セカンダリ)
サーバB
192.168.1.202
サーバBより、サーバA(192.168.1.201)へ定期的にPINGの監視をシェルスクリプトで行います。
192.168.1.201より、PINGの返答がない場合は、サーバBがサーバAのプライマリサーバのIPアドレスを
引き継ぎます。(ここまではシェルでうまくできました。)
サーバBはそのまま次にサーバAのセカンダリ(192.168.1.203)に対してPINGを行います。(これは永遠と192.168.1.203より返答がなくなるまで行います。)
そして、192.168.1.203より返答がなくなった場合、サーバBは自身の元のIPアドレスへと戻します。
上記内容を下記のようにシェルスクリプトで作成したのですが、下記のようにすると永遠とネットワークが再起動を繰り返し続けてしまい、困っております。
これを止めるには一体何を足せば良いのでしょうか…。
#!/bin/sh
TARGET_IP='192.168.1.201';
for ip in $TARGET_IP; do
ping $ip -c 4
if [ $? -ne 0 ];
then
echo "PING ERROR"
ifconfig eth0 192.168.1.201
arp -d 192.168.1.201
#ping にて 100% loss があった場合は、コマンド実行です。
#返答があった場合は、そのまま ping させ続けます。
while [ -n "$(ping -c 1 192.168.1.203 | grep 100%)" ]
do
echo "Primary server comes back"
/etc/init.d/networking restart
done
fi;
done
No.1ベストアンサー
- 回答日時:
何をしたいのか今ひとつわかりませんが(条件が逆では?)、
>#ping にて 100% loss があった場合は、コマンド実行です。
>#返答があった場合は、そのまま ping させ続けます。
ということであれば、
while [ -n "$(ping -c 1 192.168.1.203 | grep 100%)" ]
do :
done
echo "Primary server comes back"
/etc/init.d/networking restart
回答ありがとうございます。
ご指摘頂いた通り、
do
done
の後に実行するコマンドを追加することにより、うまく行きました。
後、grep する文字列が間違っていました。
while [ -n "$(ping -c 1 192.168.1.203 | grep "1 received")" ]
でした…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社の共有フォルダのIPアドレ...
-
ファイルコピーする場合のサー...
-
DNSサーバへの負荷試験ツール・...
-
Win2012 POPサービス機能
-
サーバの日付を変更するとWebア...
-
対象のアカウント名は間違って...
-
PCのリモート接続状態を事前に...
-
GoogleChromeのリモートデスク...
-
複数ドメインの統合について
-
外付けハードディスクにアクセ...
-
ドメインの一般ユーザーにロー...
-
ドメインをワークグループに変...
-
【アクセスが拒否されました。...
-
Creator Owner のアクセス許可...
-
リモートデスクトップにて、外...
-
ドメイン環境でローカルアカウ...
-
リモートデスクトップのプロセス名
-
USBメモリの認識拒否
-
店頭で販売されているパソコンが
-
他のPCで実行中のプログラムを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
会社の共有フォルダのIPアドレ...
-
530が出て、FTPアクセスできません
-
メモ帳の排他について
-
ファイルコピーする場合のサー...
-
fastcopyとタスクスケジューラ...
-
squid cache_peerのproxy-only...
-
一台のPCで複数OSを使用する開...
-
プロセス多重起動エラー(「for...
-
RHELのErrataの適用
-
fastcopyとタスクスケジューラ...
-
administrator、administrators...
-
32bit/64bitアプリケーションの...
-
subversionサーバ用のGUIツール...
-
Windows2000サーバの各ユーザの...
-
tarで/(ルート)から全ディレ...
-
ServerProtect for Linuxのシリ...
-
windows XP 上でフォルダのサー...
-
FTPでの連続アクセスについて
-
FSMOの時刻同期設定について
-
一般家庭でLinuxを生かすには?
おすすめ情報