• ベストアンサー

eth0を確認するシェルスクリプト

eth0が起動しているかどうかを確認し、起動していなかったらサーバを再起動させたいと考えているのですが、どのような方法が適当と思われますか。 google等で調べてみた感じでは、シェルスクリプト足すcronで可能なのかなと思っています。 もしシェルスクリプトを使用する場合 #!/usr/bin/sh if eth0が起動していなかったら;then shutdown -r now elif eth0が起動していたら ; then 何もしない fi というような考え方をすればいいのかなと思っているのですが、具体的な記述についてはまだピンときません。具体的記述方法、あるいは参考URL等教えていただければ幸いです。 ちなみにシェルはbash。OSはred hat 9です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • chococat
  • ベストアンサー率66% (4/6)
回答No.3

ANo.1です。 下を参考にしてください。メールの代わりに再起動すればよいかと。 http://sonic64.com/2003-09-08.html#2003-09-08-1 ちなみにifconfig eth0を使う場合の書き方は ifconfigの結果を拾ってきてUPかつRUNNINGが表示されていなければ再起動とかでしょうか。 /sbin/ifconfig eth0 | grep UP | grep RUNNING > /dev/null if [ $? -ne 0 ]; then   shutdown -r now fi

zerofore
質問者

お礼

ありがとうございます。リンク先、具体的記述とも大変参考になります。早速サーバ内でためしてみるつもりです。

その他の回答 (2)

  • MASA_H
  • ベストアンサー率42% (64/151)
回答No.2

if `/sbin/ifconfig eth0` ; then ではだめでしょうか?

zerofore
質問者

お礼

回答ありがとうございます。 if `/sbin/ifconfig eth0` ; then を使ってスクリプトを考えて見ます。 ただ、もう少し詳しく教えていただくことは可能でしょうか。 どうぞよろしくお願いします。

  • chococat
  • ベストアンサー率66% (4/6)
回答No.1

どこかにpingするとかではダメでしょうか? (ifconfig eth0 してUP、RUNNINGかどうか調べても本当に通信できるかどうかは謎ですし。。。)

zerofore
質問者

お礼

回答ありがとうございます。たしかにpingを打つのもスマートなやり方と思いました。 その場合ifにping hogehoge と入れるのだと思いますが、具体的なスクリプトが書けません...