![最后一小时内的最后登录次数](https://linux22.com/image/214120/%E6%9C%80%E5%90%8E%E4%B8%80%E5%B0%8F%E6%97%B6%E5%86%85%E7%9A%84%E6%9C%80%E5%90%8E%E7%99%BB%E5%BD%95%E6%AC%A1%E6%95%B0.png)
好的,基本上我试图给出一个特定的日期和时间,并且我想查看在该小时范围内进行的所有登录,例如给出的时间和日期的最后一个小时或最后两个小时。我需要两种方法,因为我不是到处都有系统日志,所以基本上在某些系统上最后一个在其他系统上有点工作 - cat syslog。
这就是我到目前为止所得到的
last | grep Dec | grep 1 | grep 17:*
和
cat syslog | grep Dec | grep 1 | grep 17:40 | grep -E ???
但这不起作用。我的意思是它可以工作并显示特定日期和时间的登录信息,但仅此而已。我无法弄清楚例如在 -E 参数之后要给出什么才能使其继续运行。
我检查了类似的线程,但它们也不适合我。在里面 ???我尝试放置很多东西但没有成功。 Asterisk 给了我一些不错的结果,但是这样你只能得到完整的时间,如果你的范围从 16:40 开始,那么休斯顿,我们就有问题了。
答案1
是你所期望的吗?
LANG=C last | egrep "Fri\s*Dec\s*2 $(date '+%H')"
答案2
我认为这就是您所期望的:
这将获取过去一小时内的最后一次登录:
last --since "$(date -d 'now - 1hour' +'%Y-%m-%d %H:%M')"
这显示了和25 Dec 2022
之间的登录。02:42
02:59
last --since '2022-12-25 02:42' --until '2022-12-25 02:59'
时间是在24 小时时间格式。关于--until '2022-12-25 02:59'
来自的登录02:59
被忽略(我不知道为什么),所以它只会显示来自02:42
到 的02:58
登录。
另外,如果您希望特定用户登录,请使用以下命令:
last youruser --since '2022-12-25 02:42' --until '2022-12-25 02:58'