我可以限制〜/ .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 ,它重新出现(size = 0)…

这意味着除了logrotate其他东西正在管理这个日志文件,在这种情况下,似乎这个其他应用程序可能能够管理日志的大小限制等,并且更合适。

这个节目是什么?

===========
发布回答编辑:我的更新实际上改变了原始问题的基调, Mark Russell已经很好地回答了第二点…… RobinJ按照标题回答了我原来的问题..感谢两者..

logrotate应该能够做到这一点。

弗雷德。 每次重启X会话时都会清除.xsession-errors。 实际上,它被重命名为.xsession-errors.old,并且在X登录时创建了新的.xsession-errors。 因此,如果您有一个巨大的.xsession-errors日志,则两次注销/登录会清除它。 所以会手动删除它,我的观点是,鉴于内核安全更新的规律性,预计会话将持续数月。

您的描述(文件在几个月内变得如此之大)表明您在此期间没有重新启动。 如果不是这种情况,即您已重新启动系统但文件从未轮换过,请发布更多信息,从:您使用的是什么版本的Ubuntu? 您是在运行GNOME还是KDE还是其他桌面环境?

对于自动重新出现的文件,没有单独的应用程序来管理日志文件。 重新创建文件的原因是重定向的工作原理。 例如,命令echo stuff >> /var/log/stuff.log将起作用,无论/var/log/stuff.log是否存在。

我找到了一个命令,显示程序正在访问哪个文件。 这是lsof
要找出程序正在使用.xsession-errors,您可以使用lsof | grep .xsession-errors lsof | grep .xsession-errors 。 另外,还有定影器 。 在我看来,它更容易使用。
你可以使用fuser .xsession-errors 。 它将为您提供文件和正在使用该文件的进程的PID。 添加-v使它还显示程序本身的名称。 添加-k只会杀死正在使用该文件的进程。

我的修复如下:

每日cron作业: tail ~/.xsession-errors > ~/.xsession-errors

我真的没心情想出哪个Ubuntu软件包坏了。 这不会发生在我的非Ubuntu系统上。

请注意,这实际上与 >~/.xsession-errors ,即截断文件。

还有一种将.xsession-errors永久重定向到/dev/null ,请参见此处 。