访问启动和关闭日志

我的问题是受项目rawhen启发

该项目使用命令last -R -F reboot ( 源代码中的第163行)来查看计算机运行的时间段。 您可以在文档中看到,此命令允许我们查看例如83 days ago - 447 hours

原始文档

该项目尚未更新4年。

2年前在这个网站上有人问这个问题: 如何使用“last”命令读取旧的登录信息? 答案表明:

 last -2000 -f /var/log/wtmp.1 // 83 lines (28 days) 

如果我过滤这个我得到。

 last -R -F reboot -f /var/log/wtmp.1 // 33 lines (28 days) 

但是在这个答案中,建议的行数是2000,并且似乎有一个像/var/log/wtmp.x这样的日志的假设,其中x是一个数字。

在我的/var/logwtmp只有两个文件:

 wc /var/log/wtmp* 3 19 6144 /var/log/wtmp 37 253 93696 /var/log/wtmp.1 40 272 99840 together 

这些文件仅包含过去1-2个月的数据。

我的问题是:

如何访问最旧的日志或阻止Ubuntu删除它们,或将这些日志保存在一个文件中(我只需要重新启动filter),而不会出现连接这些数据的问题。

我的系统是Ubuntu 16.04。 它是标准的家庭版,而不是服务器。

这可能是一次意外,但我看到,在上一个月计算机打开447小时,并在本月10小时,在rawhen它显示478 h小时。 是否有任何时间运行系统,之后删除日志?

我不确定我是否正确地解决了你的问题,但是为了解决你的问题(粗体部分),你应该改变logrotate配置。

看看这个文件:

 less /etc/logrotate.conf 

应该有这样的行:

 /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } 

如果从文件中删除这些行,“logrotate”不再删除此日志,您可以将“每月”更改为“每年”以使其在一年后删除文件; rotate 1表示保留一个备份,然后删除旧的备份:

 $ ls /var/log/wtmp* /var/log/wtmp /var/log/wtmp.1 

如果将其更改为2,您将获得:

 $ ls /var/log/wtmp* /var/log/wtmp /var/log/wtmp.1 /var/log/wtmp.2