Linuxでのストレージマウント状況を定期的にDiscordで受け取る

Raspberry Piに繋いでいるHDDがたまに何故か切断されていることがあるので、接続状況を定期的にログとして残すことで切断に気がつけるようにしようという記事です。

Advertisement

Discordの準備

DiscordのWebhookを利用して簡単に通知を送る

Discordに通知を送るためにDiscord側の準備が必要なので、上の記事のWebhookの作成までを行ってください。

シェルスクリプトの作成

text=$(df -h | grep /mnt/hdd)
if [ -n "$text" ]; then
    size=$(echo "$text" | awk '{print $2}')
    used=$(echo "$text" | awk '{print $3}')
    rate=$(echo "$text" | awk '{print $5}')
    mount=$(echo "$text" | awk '{print $6}')
    curl -H "Content-Type: application/json" -X POST -d "{\"username\": \"MountCheck\", \"content\": \"Size=${size} Used=${used} Use%=${rate}\"}" ここにWebhookURL
else
    curl -H "Content-Type: application/json" -X POST -d "{\"username\": \"MountCheck\", \"content\": \"ストレージが切断されています\"}" ここにWebhookURL

今回はこのように記述しました。なお、/mnt/hddには外付けHDDがマウントされています。

HDDが接続されている場合は”Mount=/mnt/hdd Size=7.3T Used=6.0T Use%=83%”のようにメッセージがDiscordに送信され、接続されていない場合は”ストレージが切断されています”と送信されます。

crontab -e
0 */1 * * * /bin/bash /hoge/hoge/MountCheck.sh

あとはcrontabで定期的に実行するように設定すればOKです。私は1時間毎にチェックしています。

Advertisement

これで何故か外付けHDDが切断されていたとしても1時間以内に反応することができます。