ネットワークインターフェースを自動再起動するシェルスクリプト
原因不明のネットワークインターフェース不良でサーバーにアクセスできなくなってしまう現象が頻繁に発生。
syslogに何も書かれてない。ディスプレイにも何も書かれてない。kernel panicでもないから
kernelの設定でrebootするようになっていても再起動されないという。
さぁ、困ったという状態になっていた。
直前に中国からssh portに怪しいアクセスが見られるから、多分
DOS攻撃くらったとかそのせいかと思う。
というか、このサーバーだけiptablesで中国・韓国を遮断してないんだった。
これはあとで設定するとして
daemontoolsを用いて、ネットワークインターフェースの再起動を
行うスクリプトを書いてみた。
daemontoolsってプロセスの監視ツールだけど、こういった
簡単な監視プログラムを作るのにも使えるよ。
内容はルーターにpingを打って、failしたらネットワークインターフェースをリブートするって仕様。
別にcronでもいいじゃんというのはおいておいてください。
ムリクリdjbを使うことに意味があるのです。
#!/bin/sh
exec 2>&1
if ping -c 5 10.0.0.1; then
echo "success"
else
echo "fail"
/etc/sysconfig/network-scripts/ifdown eth0
/etc/sysconfig/network-scripts/ifup eth0
fi
sleep 10
トラックバック URL :
コメント (29)