2012-01-17 11 views
5

ディスクを毎分確認し、何らかの理由で障害が発生した場合は、報告するスクリプトを作成する必要があります。このエラーは絶対的なディスク障害や不良セクタなどである可能性があります。ディスク障害検出perlスクリプト

最初に、標準的な手順(実際にはホイールを再構成したくないため)と同じように実行するスクリプトがあるかどうか疑問に思います。

第2に、/ var/log/messagesのエラーを調べたいのですが、使用できるディスクの標準エラー文字列がありますか?

私はネット上でそれをたくさん探しています。多くの情報があり、同時にその情報はありません。

ご協力いただければ幸いです。あなたは、単に通常のドライブエラーに関するかなり詳細な情報をレポートdmesgの出力を解析することができ

+3

ドライブはSMARTをサポートしていますか?もしそうなら、あなたは 'smartctl'ユーティリティにアクセスできますか?もしそうなら、すでにsmartmontoolsがインストールされている可能性があることに留意してください。*あなたが既にやろうとしていることを行うためのデーモンが*含まれています。 – Charles

+0

いいえ残念ながら! – Amir

答えて

4

おかげで、よくそれは私が前に失敗したドライブ上の統計情報を収集してきた方法です。

Parse::Syslogまたはそれより低いレベルのカーネルレポートを直接使用すると、文書化された情報がよりよくなる場合があります。

+0

dmesgは私に起動情報を与えます。私のサーバーはそれを頻繁に起動しません。 – Amir

+0

dmesgは、カーネルのブートシーケンスだけでなく、カーネルドライバのエラーも報告します。私は、dmesgの出力がsyslog出力ほど標準化されていないことに気付きました。だから、エラーがどのようなものかわからない場合は、それを望むかもしれません。私はドライブエラーを受けていて、mroeの詳細を知りたいときにdmesgを使用しました。 –

+0

syslogのシグネチャ(またはシグネチャのリスト)を知っていますか?ディスクエラー/障害が発生していると言えるでしょうか? – Amir

2

Logwatch ordealの/ var/log/messages部分(および追加する他のログファイル)も行います。あなたはそれを使うか、コードを使って自分の解決策(それはすべてperlで書かれています)を使うことができます。

ハードドライブがSMARTをサポートしている場合は、エラーを検出するために時間の経過とともに監視できるたくさんの素晴らしい情報が含まれているため、smartctlの診断用出力を使用することをおすすめします。

+0

+1 'smartctl'でニース見つける! BSDにはそれが欠けています。 –