如何提取登录历史记录?

如何提取登录历史记录?

我需要了解特定用户的登录历史记录(即登录和注销时间),如何在 Linux 中提取特定日期范围内的历史记录?

答案1

你可以尝试以下last命令:

last john 

它打印出用户 john 的登录/退出历史记录。而运行

last

打印出所有用户的登录/退出历史记录。

答案2

如果需要回顾一个月以上的历史记录,可以/var/log/wtmp.1使用last命令读取文件。

last -f wtmp.1 john将显示用户上个月的登录历史记录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

答案3

如何在 Linux 中提取特定日期范围的登录历史记录?

列出 8 月 25 日至 28 日登录的所有用户的示例:

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
  • awk '{ print $5" "$6" "$7 }'last从输出中提取相应列的日期时间
  • +%s将日期时间转换为纪元时间
  • -ge代表大于或等于
  • -le代表小于或等于

您还可以使用 为特定用户执行此操作last <username>

相关内容