![列出所有用户以及他们上次阅读邮件的时间,通过管道传输到多个输出](https://linux22.com/image/24554/%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E4%BB%A5%E5%8F%8A%E4%BB%96%E4%BB%AC%E4%B8%8A%E6%AC%A1%E9%98%85%E8%AF%BB%E9%82%AE%E4%BB%B6%E7%9A%84%E6%97%B6%E9%97%B4%EF%BC%8C%E9%80%9A%E8%BF%87%E7%AE%A1%E9%81%93%E4%BC%A0%E8%BE%93%E5%88%B0%E5%A4%9A%E4%B8%AA%E8%BE%93%E5%87%BA.png)
我有一个系统,我想对其进行一些清理,所以我想获取所有用户帐户以及他们访问邮件的最后日期。它是一个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
或邮件位于您系统上的任何位置)。