最近、ホームサーバーにDebian 9をインストールし、HDDでSMARTチェックを実行し、問題が発生した場合は警告を受けたいと思いました。理想的には、Slackインスタンスがスマートフォンに接続されていて非常に便利だと思うので、通知が私のSlackインスタンスに入るようにしたいと思います(すでにUPSに関する通知があり、pingが失敗します)。
smartd / smartctlを調べてみましたが、Slackに通知を送信する方法が見つからないようです。
通知を処理するためにどこかでbashスクリプトを呼び出し、Slackに通知を送信するために別の(Python)スクリプトを呼び出すことができるようにしたいです。
(編集:明確にするために、Slack通知用のPythonスクリプトはすでに他の場所で使用されているので大丈夫です。)
編集する 以下の両方のソリューションはテスト済みで、私にとってはうまくいきます。何らかの理由でSlackが機能しない場合は、私を保護してくれるので、メール+スクリプトソリューションを選択しました。しかし、両方とも信頼できる環境変数を追加してくれたRalfFriedlに感謝します。
ベストアンサー1
# /etc/smartd.conf
/dev/sda -a -m <nomailer> -M exec /my/script
これはsda
、デバイスごとに1行を追加することです。または、検出されたすべてのデバイスを監視するには、/dev/sda
に置き換えますDEVICESCAN
。
完了するまで/my/script
中断されますので、時間がかからないことを確認してください。smartd
/my/script
さまざまな環境変数を使用して実行されます。探す。man smartd.conf
たとえば、SMARTD_DEVICE
他の変数は次のようになります。 " SMARTD_FULLMESSAGE
smartdの完全な電子メール警告メッセージ文字列の内容に設定します。"
メッセージングをテストするには、次の一時設定ファイルでsmartdを起動してテストメッセージを送信します。
# /etc/smartd.conf
/dev/sda -a -m <nomailer> -M exec /my/script -M test
私は上記の何もテストしませんでした。-d
testを使用して、特定のオプションを含める必要があるかどうかをすでに決定しているとしますsmartctl
。 (DEVICESCANと対話する方法がわかりません-d
)。また、基本テストが-a
デバイスに必要なものと一致すると仮定します。たとえば、長いマニュアルページに記載されている1つは、不良セクタを再割り当てした後に、一部のドライブが誤った肯定を示すことです。https://superuser.com/a/539040/110495