我想知道Linux中是否有一个日志文件,每次关闭计算机时都会进行记录?
我问的原因是我正在做一些测试,涉及我的笔记本电脑电池在某些条件下的持续时间。我的笔记本电脑配置为在电池电量剩余约 10 分钟时自动关闭,因此如果某处有日志文件记录计算机关闭时的情况,这将使我的测试更容易。
我正在运行 Ubuntu 10.04。谢谢!
小智 19
该/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.
Run Code Online (Sandbox Code Playgroud)
检查您的/etc/syslog.conf或/etc/rsyslog.conf等效的以确保日志在那里。您可能需要 root 权限才能读取日志文件。
此外,虽然它本身不是关机,但“last”命令应该报告重新启动。
您上次关机前后的日志中真的没有任何内容吗?
对于您的测试,请记住,由于电池报告的信息可能准确,也可能不准确,因此您的计算机只知道还剩 10 分钟。您可以直接查看 ACPI 信息,而不是等待关机。在我的笔记本电脑上,它在这里:
/proc/acpi/battery/BAT0/
Run Code Online (Sandbox Code Playgroud)
在那里,“状态”和“信息”文件看起来很有趣。您可以在各种条件下运行笔记本电脑时查看状态文件中的剩余容量,以了解它下降的速度。
小智 7
首先,让我先说我知道这是一个较旧的线程。我只是发表评论,以便其他在网上搜索时发现这一点的人(就像我今天所做的那样)会有一个明确的答案。
其次,请注意以下命令是不好的做法,属于“猫的无用用途”(谷歌搜索)类别...
cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"
Run Code Online (Sandbox Code Playgroud)
该行应更改为:
grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages
Run Code Online (Sandbox Code Playgroud)
grep 和大多数 unix/linux 命令(sed、awk 等)不需要 cat 读取文件内容。将文件路径和名称放在命令后面以将其作为参数传递就足够了。添加管道和另一个外部命令 (cat) 只是浪费时间和资源。
最后,至于在哪里可以找到系统关闭和/或重新启动的记录,请使用最后一个命令,因为这正是它的用途。它读取所有登录/注销条目的 /var/log/wtmp 日志文件。因为关机和重启实际上是系统级别的登录/注销事件,所以记录在这里。这同样适用于 root 控制台关闭,它是一个注销事件。
例子:
last -5 reboot shutdown root
Run Code Online (Sandbox Code Playgroud)
这将为您提供 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
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助任何偶然发现这个线程的人。:-)
| 归档时间: |
|
| 查看次数: |
177066 次 |
| 最近记录: |