OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

サーバのチェックのshellscript

  • 困ってます
  • 質問No.182863
  • 閲覧数46
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 87% (491/560)

Linuxで稼働しているサーバのデーモン(dns, httpd, sendmail等)が正常に作動しているかどうか判定して、自分の携帯に作動していないことが判明したらメールを送付するようなshelscripの例などがどこかURLに公開されておりますでしょうか。前回pingを用いてサーバの稼働を確認する方法を教えていただきましたが、使用している安心感がかなりあります。各ソフトの稼働状態が自動で携帯に入るので在ればこれは究極の監視ツールになるのでは無いかと思います。Unix, Shellscript超初心者です。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3

お久しぶりです。yostyです。
前回は低レベルなスクリプトでお手数をおかけしてしまいましたが、
こりずに発言させていただきます。

今回のスクリプトは、前回と違い、自分自身のマシンで実行します。
また、一度メールを送っても終了せず、監視を続けます。
以下では30分ごとを指定しています。sleepの後ろを書き換えてください。

/etc/rc.d/init.d/ に起動ファイルがあるものしか対応出来ません。
for target in の後ろに、必要な物を/etc/rc.d/init.d/ から選んで書いてください。
プロセスが死んでいる場合は、メールだけでなく、自力で起動もさせるようにしました。

/etc/rc.d/init.d/ 以外のものもとなると、
ps ax | grep $target
を使う方法がありますが、syslog等、自分自身ではないプロセスに関連して文字列が出てくることもありますので、こちらのやり方を選びました。
________________________________________________________________
#!/bin/sh

while [ 0 ]
do
for target in named httpd syslog crond xinetd sshd
do
if /etc/rc.d/init.d/$target status &> /dev/null
then
:
else
/etc/rc.d/init.d/$target start &> /dev/null
echo $target was dead | mail user@address.com
fi
done
sleep 1800
done

exit 1
________________________________________________________________

なお、このスクリプトだけでは、プロセスに問題がないのか、マシン自体が落ちてしまって、スクリプトが動いていないのかの区別が付きませんので、前回のpingのスクリプトと会わせてお使い下さい。

プロセスが動いていることと、正常に動いていることとは同じではないので、あくまで補助的なものと考えてください。
お礼コメント
cincinnati

お礼率 87% (491/560)

貴重なお時間を頂きまして、前回に引き続いて御世話になります。ご記載頂きましたように書きまして、ソフトを停止したところ携帯に停止している旨のメールが入りました。このようなShellscriptが書けるようになるにはどんな本を読んで、どのように勉強すれば良いのでしょうか。ご教授頂ければ幸いです。本当に有り難うございました。これからはパソコンを持ち歩いて時々アクセスするなどと言う作業から多少は解放されそうです。
投稿日時 - 2001-12-11 12:57:12
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 41% (324/772)

perlのNet::telnet等を使用して、直接サービスに接続して稼動を確認するのが良いでしょう。 たとえば、wwwなら「telnet remotehost 80」で接続できますので、接続後、「GET /hidden_index.html」等として正しくページが取得できるかどうかを確認すれば良いでしょう。 まぁ、面倒なら有償のリモート監視サービスを契約するほうが早いかも、、、 #ガンバ ...続きを読む
perlのNet::telnet等を使用して、直接サービスに接続して稼動を確認するのが良いでしょう。

たとえば、wwwなら「telnet remotehost 80」で接続できますので、接続後、「GET /hidden_index.html」等として正しくページが取得できるかどうかを確認すれば良いでしょう。

まぁ、面倒なら有償のリモート監視サービスを契約するほうが早いかも、、、

#ガンバレ!!
お礼コメント
cincinnati

お礼率 87% (491/560)

有り難うございました。今後もよろしく御願いいたします。
投稿日時 - 2001-12-11 12:59:49
  • 回答No.2
レベル8

ベストアンサー率 36% (16/44)

でもさ、PINGじゃ意味ないと思うんだけど。だってNICが生きてるかどうかを確認してもDeaomは見えないジャン。なら、netstatとか自分にポートスキャンをかけて確認するほうがいいんじゃない? でもね、SMTPが死んでたら、DNS、HTTPDが生きててもメールで報告はできないから、違うドメインのSMTPじゃないとだめじゃない? ちょっと冷たいかもしれないけど、これは既存技術でこの手のソフトはい ...続きを読む
でもさ、PINGじゃ意味ないと思うんだけど。だってNICが生きてるかどうかを確認してもDeaomは見えないジャン。なら、netstatとか自分にポートスキャンをかけて確認するほうがいいんじゃない?
でもね、SMTPが死んでたら、DNS、HTTPDが生きててもメールで報告はできないから、違うドメインのSMTPじゃないとだめじゃない?

ちょっと冷たいかもしれないけど、これは既存技術でこの手のソフトはいっぱいあるので究極ではなかったりする・・・しかも、この手の監視ソフトは動作が怪しいというか、監視間隔によって、ちょっとしたトラフィックもダウンと判断するよ
お礼コメント
cincinnati

お礼率 87% (491/560)

有り難うございました。
投稿日時 - 2001-12-11 13:00:44
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ