すべてのユーザーとメッセージを最後に読み取った時刻を一覧表示し、複数の出力にパイプします。

すべてのユーザーとメッセージを最後に読み取った時刻を一覧表示し、複数の出力にパイプします。

少し整理したいシステムがあるので、すべてのユーザーアカウントとユーザーがメールに最後にアクセスした日付を取得したいと思います。 Debian システムです。

これまで私はこれをしました:

cut -d: -f1 /etc/passwd | xargs -n1 finger | grep "Mail last read" 

しかし、そのユーザー名を前にどのように書くのかわかりません。

電子メールを最後に読んだ日:2012年8月12日日曜日03:06(中央ヨーロッパサマータイム)

答え1

次のように試すことができます。

for USER in $(cut -d: -f1 /etc/passwd); do MAILINFO=$(finger $USER | grep "Mail last read"); echo "$USER - $MAILINFO"; done

ポイントを理解しているようです... grep "Mail Last Read"から返された結果を少し操作する必要があります。

答え2

cut -d: -f1 /etc/passwd |
xargs finger |
awk  '/^Login:/ { user = $2 }
      /^Mail last read/ {print user, $0}'

またはできます

ls -ltu /var/spool/mail

(または/var/mailメールがシステム上にある場所)

関連情報