![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
サーバ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で質問しましょう!
似たような質問が見つかりました
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- その他(メールソフト・メールサービス) メールが送信できない 発信側でできる対策 3 2023/05/11 10:22
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- VPN 無料のwifiはなぜ危険性高い? VPN プライベートDNSモードにすれば安全? 2 2022/06/04 18:23
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- サーバー ファイルサーバのデータのバックアップ 1 2023/03/15 10:30
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
会社の共有フォルダのIPアドレ...
-
530が出て、FTPアクセスできません
-
RHELのErrataの適用
-
アクセス許可、管理者権限が得...
-
【ドメイン参加】ネットワーク...
-
「フルコントロール」と「変更...
-
Everyone拒否したら自分がアク...
-
特定のユーザーをログオン不可...
-
VNCにうまくつながらない
-
自分のPCがリモートされてるか...
-
ローカルでログインできない
-
ユーザ登録時「サーバは使用可...
-
Windowsでリモートデスクトップ...
-
ドメインをワークグループに変...
-
リモートデスクトップ接続機能...
-
システムに接続されたデバイス...
-
「プリンター(1コピー)」の削除...
-
アクセス権がなく、iTunesを起...
-
1台のPCを複数のワークグループ...
-
コマンドのnetstatで表示される...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
会社の共有フォルダのIPアドレ...
-
530が出て、FTPアクセスできません
-
メモ帳の排他について
-
自動メール送信するには?
-
tracert www.yahoo.co.jp
-
ファイルコピーする場合のサー...
-
fastcopyとタスクスケジューラ...
-
administrator、administrators...
-
fastcopyとタスクスケジューラ...
-
RHELのErrataの適用
-
「日本でのUnixサーバーの普及...
-
ntpデーモンについての質問
-
tmpディレクトリの中に
-
32bit/64bitアプリケーションの...
-
WindowsserverとCALの事について
-
サーバの日付を変更するとWebア...
-
RIOWORKS PDVIA(Slot1 Dual)に...
-
この環境だとサーバーは何台ぐ...
-
Win2012 POPサービス機能
-
net timeができない。
おすすめ情報