有什么方法可以限制的大小吗.xsession-errors.
?
我收到大量特定调试信息消息,文件大小已膨胀至 2.8 GB(数月以来)。该消息占 .xsession-errors 中所有行的 95%。
我想我知道它是哪个应用程序,我必须单独研究它,但现在我想知道是否有一个设置可以防止日志无限增长。
日志目前分为 2 个文件 (0.8 GB 和 2.0 GB)
更新:
在采纳了 RobinJ 的建议后logrotate
(确实可以减小文件大小),我注意到在我手动删除 2.0 GB 的文件后.xsession-errors.old
,它又重新出现了(大小 = 0)...
这意味着除了logrotate
管理此日志文件之外还有其他东西,在这种情况下,似乎这个其他应用程序可以管理日志的大小限制等,并且会更合适。
这是什么程序?
===========
回答后编辑:我的更新实际上改变了原始问题的语气,马克·拉塞尔很好地回答了第二点.... 罗宾·J按照标题回答了我原来的问题。感谢你们两位。
答案1
日志旋转应该能够做到这一点。
答案2
fred。每次重新启动 X 会话时都会清除 .xsession-errors。实际上,它被重命名为 .xsession-errors.old,并且在 X 登录时会创建一个新的 .xsession-errors。因此,如果您有大量的 .xsession-errors 日志,两次注销/登录就会清除它。因此将手动删除它,我的观点是,考虑到内核安全更新的规律性,会话不会持续数月。
您的描述(文件在几个月内变得如此之大)表明您在这段时间内没有重启过。如果这是不是在这种情况下,即您已重新启动系统但文件从未旋转,请发布更多信息,首先是:您使用的是哪个版本的 Ubuntu?您正在运行 GNOME 或 KDE 还是其他桌面环境?
至于文件自动重新出现,没有单独的应用程序管理日志文件。重新创建文件的原因是由于重定向的工作方式。例如,echo stuff >> /var/log/stuff.log
无论 /var/log/stuff.log 是否存在,该命令都会起作用。
答案3
我找到了显示哪个程序正在访问哪个文件的命令。它是lsof
。
要找出哪个程序正在使用 .xsession-errors,您可以使用lsof | grep .xsession-errors
。此外,还有定影器。我认为它更容易使用。
您只需使用fuser .xsession-errors
。它将为您提供文件和正在使用该文件的进程的 PID。添加-v
还会向您显示程序本身的名称。添加-k
只会终止正在使用该文件的进程。