ヘッドレスLinuxサーバー用のハードドライブ監視スクリプト
最近のハードドライブにはS.M.A.R.Tという内部メカニズムがあります。これによって、ハードディスクがいつ故障するのかを知ることができます。そのような失敗の前にあなたにEメールを送るのはサーバにとって良いことではないでしょうか。?
概要
“ mdadm”(ソフトウェアRAID管理用)や“ Palimpsest Disk Utility”(Ubuntu LiveCDで使用される)のようなプログラムは、ディスクが故障しそうになったときや故障したときに知らせるためにS.M.A.R.T情報を使います。しかし、ヘッドレスサーバー(GUIなし)では、手遅れになる前に未決の運命を知らせるサービスはありません。また、手動でサーバーにログインせずにそれについてどのように知っていますか?
このスクリプトは、cronを使用して1日に1回実行されると、システムのハードドライブの不良セクタ数のいずれかが故意に「ディスクが不良」のしきい値を下回った制限に達した場合に警告し、警告をコンピュータの管理者に送信します。.
前提条件と前提
- 「LinuxでEメールアラートを設定する方法」ガイドを使用して、サーバーのEメールサポートをすでに設定しています。.
- あなたはDebianベースのシステムを使っています.
- ハードウェアRAIDコントローラを使用していません.
- あなたは私がエディタプログラムとしてVIMを使っているのを見るでしょう、これは私がそれに慣れているという理由だけでです…あなたはあなたが望む他のエディタを使うことができます.
*ハードウェアRAIDコントローラがこの情報へのシステムのアクセスをブロックする可能性が非常に高いため.
セットアップ
ハードドライブコントローラからS.M.A.R.T情報を読み取り、それを弊社に提示する「smartmontools」パッケージをインストールします。.
sudo aptitudeインストールsmartmontools
監視スクリプトを作成します。
sudo vim /root/smart-monitor.sh
これを内容にします。
#!/ bin / bash
########メール機能########
email_admin_func()
echo "To:[email protected]"> $ temp_email_file
echo "From:[email protected]" >> $ temp_email_file
echo "件名:S.M.A.R.Tモニターしきい値違反" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t < $temp_email_file
エコー「管理者に電子メールを送りました」
smartc_func()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
########関数の終わり########
########作業パラメータを設定する########
temp_email_file = / tmp / smart_monitor.txt
allowed_threshold = 5#あなたの住む意思のある不良セクタの数を設定します、5を推奨します.
########エンジン########
私はSDAのSDBに。設定に応じて、このリストからディスク名を追加または削除します。.
if [["" smartc_func $ i "" -ge $ allowed_threshold]];それから
管理者への電子メール送信
email_admin_func "ホスト名"のHDの1つが上限しきい値に達しました!!! nしきい値は$ allowed_thresholdに設定され、$ iディスクステータスは "'smartc_func $ i'" "でした
fi
終わった
注意すべき重要な点は以下のとおりです。
- Eメール機能 - マシン名や管理者Eメールなどの適切な情報を設定します.
- 許可されたしきい値 - 私が使用した「サーバーグレード」のハードドライブに設定されている制限は10だったので、私は5を使用しました。 140)と同じくらい高い.
- 「for」ループでディスク名の列挙を調整して、監視したいデバイスを設定します。現在2つのディスク(sdaとsdb)が含まれていますので、セットアップに合わせて調整してください。 *何らかの理由でディスクを除外する必要がある場合は、すべてのディスクを含めることも、一部だけを含めることもできます。.
*私の最初のセットアップでは、最初のディスクはフラッシュドライブだったので、可能であればその情報を読むことはあまり役に立ちません。.
スクリプトを実行可能にします。
sudo chmod + x /root/smart-monitor.sh
設定は完了です.
スクリプトが自動的に実行されるようにスケジュールする
スクリプトを自動的に実行したいので、新しいCronジョブを作成します。.
「Linuxで電子メール警告を設定する方法」ガイドに記載されているように、スクリプト自体がエラーに遭遇した場合、cronはそれが起こるとすぐに自動的に電子メールで私たちに知らせるということです。.
cronジョブスケジューラを開きます。
sudo crontab -e
内容にこれを加えなさい:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
これは毎朝7時にスクリプトが実行されるように設定します。.
あなたの部門はすべて私たちのものです:)