Linux中有没有记录关机的日志?
我想知道在Linux中是否有一个日志文件,它记录了每次关机的情况?
我问这个问题的原因是,我正在做一些测试,涉及到我的笔记本电池在某些条件下的持续时间。我的笔记本被配置为当电池电量还剩10分钟时自动关机,所以如果在某个地方有一个记录电脑关机时间的日志文件,这将使我的测试变得更加容易。
我运行的是Ubuntu 10.04。谢谢你
我想知道在Linux中是否有一个日志文件,它记录了每次关机的情况?
我问这个问题的原因是,我正在做一些测试,涉及到我的笔记本电池在某些条件下的持续时间。我的笔记本被配置为当电池电量还剩10分钟时自动关机,所以如果在某个地方有一个记录电脑关机时间的日志文件,这将使我的测试变得更加容易。
我运行的是Ubuntu 10.04。谢谢你
命令last -x shutdown
呢?
/var/log/messages
文件中确实应该有一些与关机有关的内容,比如我的(CentOS 5)就有这样的行。
Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.
检查你的/etc/syslog.conf
或/etc/rsyslog.conf
或同等文件,以确保日志在那里。你可能需要root权限才能读取日志文件。
另外,虽然它本身不是关机,但 “last "命令应该报告重启情况。
在你最后一次关机的前后,日志中真的什么都没有吗?
为了便于您的测试,请记住,您的计算机只知道它还剩10分钟,因为电池报告的信息可能是或不准确。与其等待关机,你可以直接查看ACPI信息。在我的笔记本上,它在这里。
/proc/acpi/battery/BAT0/
在这里,"状态 "和 "信息 "文件看起来很有趣。你可以在各种条件下运行笔记本时观察状态文件中的剩余容量,看看它下降的速度有多快。
首先,让我先说,我知道这是一个老话题。我发表评论是为了让其他在网上搜索时发现这个问题的人(就像我今天一样)能有一个明确的答案。
其次,请注意以下命令是不好的做法,属于 “猫的无用用途"(google搜索一下)的范畴……
cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"
这一行应该改成。
grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages
grep, 大部分的unix/linux命令(sed, awk, 等等… )都不需要cat来读取文件内容. 只需将文件路径和名称放在命令后面作为参数传递即可。增加一个管道和另一个外部命令(cat)只是浪费时间和资源。
最后,至于在哪里找到系统关机和/或重启的记录,使用最后一条命令,因为这正是它的目的。它读取/var/log/wtmp日志文件中的所有登录/注销条目。因为关机和重启实际上是系统级别的登录/注销事件,所以它们被记录在这里。同样的道理也适用于root console shutdown,它是一个logout事件。
示例:
last -5 reboot shutdown root
这将给你wtmp日志中最后5个重启、关机和root(包括控制台关机)条目。
结果:
reboot ~ Mon Mar 23 14:51
shutdown ~ Mon Mar 23 14:49
root console Mon Mar 23 14:49 - shutdown (00:00)
reboot ~ Mon Mar 16 09:54
shutdown ~ Thu Mar 12 17:41
我希望这能帮助任何偶然发现这个帖子的人。)
/var/log/messages文件应该包含以下信息。
last reboot
在CentOS 6.7上对我有效。
要在输出中显示年份,所以如果你有超过一年的记录,实际上是有意义的,做
last -F reboot
虽然我收集到-F开关在某些系统上不起作用,比如Solaris。不过这显然是GNU最后的一部分。