Iza*_*zac 137
你可以试试这个last命令:
last john
Run Code Online (Sandbox Code Playgroud)
它打印出用户 john 的登录/退出历史记录。而跑步只是
last
Run Code Online (Sandbox Code Playgroud)
打印出所有用户的登录/退出历史记录。
eww*_*ite 43
如果您需要回溯超过一个月的历史,您可以/var/log/wtmp.1使用该last命令读取该文件。
last -f wtmp.1 john将显示 user 上个月的登录历史记录john。
最后一个日志输出不太重,而且相对容易解析,所以我可能会将输出通过管道传递给 grep 以查找特定的日期模式。
last john | grep -E 'Aug (2[0-9]|30) '8 月 20 日至 30 日。或类似的东西:
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '7月10-30日为用户获取john。
qua*_*nta 21
如何在 Linux 中提取特定日期范围的登录历史?
列出所有用户从 25 到 28/Aug 登录的示例:
last | while read line
do
date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
[[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
Run Code Online (Sandbox Code Playgroud)
awk '{ print $5" "$6" "$7 }'从last输出中提取相应列的日期时间+%s 将日期时间转换为纪元时间-ge 代表大于或等于-le 代表小于或等于您也可以使用last <username>.