他のユーザーが未読のメールがあるかどうかを確認するLinuxシェルスクリプト

他のユーザーが未読のメールがあるかどうかを確認するLinuxシェルスクリプト

ユーザーが未読メールを持っているかどうかを確認するためにユーザーIDをパラメータとして受け入れるシェルスクリプトを作成しています/var/spool/mail

ユーザーのメールステータスを確認するにはどうすればよいですか?/var/spool/mail未読メールのみ?その場合は、ファイルサイズが0より大きいユーザーのみを確認するとします。

ベストアンサー1

未読メッセージを見つける1つの方法は、メールスプールファイルのタイムスタンプを確認することです。ファイルがアクセス(読み取り)された後に記録された場合、つまりファイルがmtime大きいatime場合は未読メッセージがあります。

for f in /var/spool/mail/* ; do 
     [ $(stat -c '%Y -gt %X' "$f") ] && echo "$f has unread mail"
done

もちろん、メールボックスを開くと、誰かが個々のメッセージを表示しているかどうかにかかわらず、メールボックスの内容はすべて「読んだ」と見なされます。

多くの場合、読んでいるメッセージも~/mboxスプールディレクトリから移動(に移動)されるため、ファイルサイズを確認するだけです。

おすすめ記事