4

我试图找出登录到我的系统的时间(基本上是系统启动)。

我正在使用lastUnix 命令。但是,它不允许我提取超过一定数量的条目。我假设它从中提取的日志文件,即/var/log/wtmp,在一定大小后被覆盖。

我看到我也有一个wtmp.1文件,因此使用-f参数我可以使用此参数返回一个月后的日志。想知道后面的日志是否存档在某个地方。

所以,我的问题是:有没有办法获得较旧的条目。

以下是last我正在拨打的电话:

last -n 10000|grep "system"

这是输出的最后几行

reboot   system boot  3.5.0-36-generic Sun Jul  7 07:07 - 22:08  (15:01)    
reboot   system boot  3.5.0-36-generic Sat Jul  6 23:23 - 23:23  (00:00)    
reboot   system boot  3.5.0-34-generic Sat Jul  6 09:40 - 23:22  (13:42)    
reboot   system boot  3.5.0-34-generic Sat Jul  6 09:38 - 09:39  (00:00)    
reboot   system boot  3.5.0-34-generic Sat Jul  6 06:40 - 09:39  (02:58)    
reboot   system boot  3.5.0-34-generic Sat Jul  6 06:15 - 06:17  (00:02)    
reboot   system boot  3.5.0-34-generic Sat Jul  6 06:13 - 06:17  (00:03)    
reboot   system boot  3.5.0-34-generic Fri Jul  5 19:30 - 22:34  (03:03) 

我无法及时获取日志。

  1. 这是正确的方法吗?
  2. 我们如何查看旧日志?例如,如果我通过-n 10000or -n 1000000,我会得到相同的输出。

最终我将编写一个快速的 Python 脚本来解析来自子进程模块的这个 o/p。

编辑:下面的大多数答案都是正确的。不幸的是只能接受一个答案。曾经的原木不见了!

4

4 回答 4

3

您没有说您正在运行什么类型的 unix / linux,但在我的 Ubuntu 主机上,这适用于上次启动时间

for f in /var/log/wtmp*; do last -f $f reboot;done

它所做的只是在 /var/log 中找到所有 wtmp 文件,然后过滤掉重启用户

于 2013-07-18T15:39:02.440 回答
2

最后通过文件 /var/log/wtmp 进行搜索。所以关于2)它只能列出wtmp中包含的那些条目。(使用参数 f 指定任何其他文件)例如,如果您使用日志旋转器旋转该文件,则默认情况下不会看到这些条目。1) 取决于 ;-)

您只能列出日志的那些登录(分别是轮换日志仍然存在)

于 2013-07-18T15:20:01.473 回答
2

该命令从文件中last获取其信息(在我当前的系统上,但根据您的发行版,实际路径可能不同)。在大多数发行版中,该文件通常会定期轮换,并保留一定数量的以前的文件,您应该可以使用这些文件进行访问(尽管您可能需要先解压缩旧文件)。wtmp/var/log/wtmplast -f <filename>

于 2013-07-18T15:20:50.403 回答
1

猫 /proc/正常运行时间

这告诉您系统已经启动了多长时间。那是你要的吗?

于 2013-07-18T15:14:24.050 回答