GNU/Linux >> Linux の 問題 >  >> Linux

電子メールが最後に使用された時間を知る方法は?

サーバー上に、一部の人が使用しているメールがいくつかあります。

何年も前に作成されたものもあり、もう使用されていないようです。

ftpを介してフォルダが表示されます

.Drafts
.Junk
.Sent
.spam
.Trash
cur
new
tmp

とファイル

dovecot-acl-list
dovecot-uidvalidity.53836d02
dovecot-uidvalidity
dovecot-keywords
subscriptions
courierimapsubscribed
courierimapacl
dovecot-quota
maildirsize
courierimapuiddb
dovecot.index.thread
dovecot.mailbox.log
dovecot.list.index
dovecot.index
dovecot-uidlist
dovecot.list.index.log
dovecot.index.log
dovecot.index.cache

Date Modifiedです これらのファイルのいずれかのうち、電子メールが最後に使用されたのはいつかを示す良い指標ですか?使用されるとは、少なくとも読むことを意味します。

承認された回答:

最初にいくつかの背景:メールボックスはMaildir形式です。 Maildirメールボックスには、tmpという3つのサブディレクトリがあります。 、new 、およびcur 。これらのうち、tmp 配信にのみ使用されます。new 新しいメッセージが含まれ、cur メッセージを読む。配信されたメッセージは、newの不変ファイルで構成されます およびcur 。状態を「新規」から「読み取り」に変更するメッセージは、基本的に、対応するファイルをnewから移動することを意味します。 curへ 。その他のさまざまなメッセージごとのフラグ(OF など)は、ファイル名に特殊文字を追加して記録されます。 IMAPフォルダは単なるMaildirサブフォルダです.Sent.Draft 、など。受信トレイのMaildir内。

メッセージがMaildirs/var/mail/<user>/にあると仮定します 、これは次のヒューリスティックにつながります:

for mb in /var/mail/*; do
    find "$mb" -type d -name -cur -mtime -365 \
        -exec printf 'user %s is still active\n' $(basename "$mb") \; -quit
done

これはほとんど機能しますが、誤検知と誤検知の両方が発生する可能性があります。 IMAPサーバーがユーザーをトロールしてmtimeを更新する可能性があるため、誤検知 curの メールボックスのインデックスを作成するとき、またはその他の定期的なタスクを実行するときのフォルダ。ユーザーが最新のメッセージを含むフォルダーを削除する可能性があるため、フォールスネガティブ。

より安全なアプローチは、ログを解析して、ユーザーがSquirrelMailに最後にログインしたのはいつかを確認することです(ただし、Squirrelがそのようなログを最初に保持するように構成されている場合)。


Linux
  1. LinuxTouchコマンドの使用方法+例

  2. パスワードのハッシュに使用されるハッシュアルゴリズムを見つける方法は?

  3. Bash スクリプトのスクリプト ファイル名を知るにはどうすればよいですか?

  1. 「errno」の意味を知る方法は?

  2. Linux カーネルが使用するキャッシュを消去する方法

  3. curl -v の出力をパイプまたはリダイレクトするにはどうすればよいですか?

  1. 最後にWindowsを使用したのはいつですか。

  2. Linux:デバイスに使用されているデバイスドライバーを見つける方法は?

  3. インターネット接続を共有するには?