列出所有用户以及他们上次阅读邮件的时间,通过管道传输到多个输出

列出所有用户以及他们上次阅读邮件的时间,通过管道传输到多个输出

我有一个系统,我想对其进行一些清理,所以我想获取所有用户帐户以及他们访问邮件的最后日期。它是一个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“邮件上次阅读”的返回结果。

答案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或邮件位于您系统上的任何位置)。

相关内容