smartd.serviceで内蔵ディスクと外付けディスクを監視しようとしてはまったので共有。

要件としてエラーや結果は外部メール等を使わず、内部アカウントにメール。
まぁここまでは、/etc/smartd.confの設定なんだけど、ここからはまった、はまった。
やっぱ/var/mail/"UserName”にメール来たらデスクトップ通知欲しいよねみたいな。
で、色々方法を探してたんだけど、Linuxにincronってイベントハンドラがあることを知ったので簡単にこれで、mboxのファイル更新を監視して、notify-sendで投げれば解決じゃんとか思ったんだけど、そこからが長い。
まず/etc/incron.allow に自分のユーザー名を追加して、notify-sendでメッセージを送る簡単スクリプトを書いたんだけど、incronで起動するとユーザのDISPLAYとか認証情報とか持ってないので、結局、スクリプトの頭に
export DISPLAY="echo $DISPLAYの値"
export XAUTHORITY=/home/"UserIName"/.Xauthority
export XDG_RUNTIME_DIR="/run/user/[UserID]"
で、ここからなんだけど、
当初は、mboxの自分のユーザ名のファイルが更新されたらみたいな感じで考えてたんだけどどうも、このpostfixで作られるmboxファイルの更新監視ができない。(IN_ATTRIB、IN_CLOSE_WRITE、IN_CLOSE_NOWRITE )
で結局こうなりました。

/var/mail IN_CLOSE_WRITE /home/"UserIName"/.local/bin/notify_new_mail.sh $@ $#

# incrontab引数取得
FILENAME=$2
# 変更されたファイルが "UserName"のファイル名?
if [ "$FILENAME" = "UserName" ]; then
hogehoge
fi
ファイル更新監視とかファイル存在監視とか、ログ監視もだけど、自分でやってみると奥が深いね〜。
でもまだ、本当はもっとスマートな方法があったのかと思うんだけど(正し、外部メールはなし)、アイデアお願いします。