我可以限制 ~/.xsession-errors 的大小吗?

我可以限制 ~/.xsession-errors 的大小吗?

有什么方法可以限制的大小吗.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只会终止正在使用该文件的进程。

答案4

我的解决方法如下:

每日计划任务:tail ~/.xsession-errors > ~/.xsession-errors

我实在没心情去弄清楚哪个 Ubuntu 软件包坏了。在我的非 Ubuntu 系统上不会发生这种情况。

请注意,这将实际上是相同的就像这样>~/.xsession-errors,即截断文件。

还有一种方法可以永久重定向.xsession-errors/dev/null,请参阅这里

相关内容