首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux下清理日志文件

在linux下清理日志文件
EN

Unix & Linux用户
提问于 2011-12-25 22:20:52
回答 3查看 24.7K关注 0票数 10

我正在使用KVMubuntu10.04虚拟机来测试内核模块的一些特性。我通过/var/log文件来观察关于该模块的内核消息。

为了从干净的状态开始,我通过执行rm -rf /var/log/*来删除包含旧消息的日志文件,然后重新启动虚拟机。但是,在我重新启动之后,新的日志文件仍然包含那些旧的日志消息。删除文件和重新启动虚拟机需要大约5-6个周期才能最终消除这些日志文件消息。

为什么会发生这种情况?有更简单的方法来清理日志文件吗?

EN

回答 3

Unix & Linux用户

发布于 2011-12-26 00:06:10

清理旧日志最简单的方法就是不移除它们。

清理日志的最佳方法要么是哈南N.指出的logrotate,要么是:

代码语言:javascript
复制
find /var/log -type f -exec /bin/cp /dev/null {} \;

对于每个日志文件。我不确定您指的是上一次引导中的哪个日志条目,但是如果您希望在引导之后清除这个日志条目,您可以将上面的命令放入/etc/rc.local脚本中,所以所有的日志记录都是在引导之后进行的。

不过,通常情况下,您不希望清除日志,因为它们是您所有故障排除的起点。

票数 7
EN

Unix & Linux用户

发布于 2011-12-26 03:50:45

对于您正在做的事情,最好为内核消息添加一个额外的日志文件。一些日志守护进程将允许您对正在写入的记录执行匹配,因此您只能在文件中获得适当的记录。然后,可以在运行期间旋转、删除或重命名文件。(如果不重新启动,则可能需要向日志守护进程发送HUP信号,以使其重新打开其文件。

还有一些工具将只从日志中提取新记录。来自logtail包的logcheck实用程序就是这样一个实用工具。它可以使用备用偏移文件运行。

还有其他工具可以监视日志,以便记录匹配模式并报告它们。其中之一可能对你很有用。

票数 3
EN

Unix & Linux用户

发布于 2014-09-04 22:31:20

这看起来很好(在Ubuntu 14.04上),方法是将您的日志旋转到一个干净的日志中,然后删除旧的日志条目。它类似于cp /dev/null方法,但我认为它更简洁。ymmv

代码语言:javascript
复制
logrotate --force /etc/logrotate.conf
find /var/log/ -name '*[0-5]*' -exec rm {} \;
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/27649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档