为什么.xsession-errors.old 文件这么大?

为什么.xsession-errors.old 文件这么大?

问题

许多用户(包括我)时不时地发现磁盘空间的使用情况非常奇怪。有一天我有 50Gb 的可用空间,第二天我只有 3Gb,这太疯狂了。

这发生在不同版本的 Ubuntu 上(仅举几个例子,11.04、12.04 和 12.10)。

部分用户在此网站上提出了问题,其中包括:

解决方案

@NathanWienand发现问题是由.xsession-errors.old文件引起的(可以在 $HOME 目录中找到),他和其他用户解决了删除文件的问题。例如,这个文件的大小约为 100Gb,不合理。

问题

  • 为什么会发生这种情况?
  • 删除文件是解决问题的唯一方法吗?
  • 有没有其他方法可以解决这个问题并且具有较大的周期效应?
  • 该问题只影响64位系统的用户吗?

如果您在这里需要添加一些内容,请随意编辑问题。

答案1

您可以调查该问题。是的,我知道这是一个大文件,但是通过丢弃数据并让计算机完成工作,可以:

cat .xsession-errors* | \
    egrep -v '^$' | \
    sed -e 's/[0-9][0-9]\+/#NUM#/g'  | \
    sort | \
    uniq -c | \
    sort -rn | \
    tee counts.out | \
    less -XMersj3

一些消息(在我的系统上没有问题)例如:

     38 /usr/share/software-center/softwarecenter/ui/gtk3/widgets/exhibits.py:#NUM#: Warning: Source ID #NUM# was not found when attempting to remove it
     38   GLib.source_remove(self._timeout)
     36 (nautilus:#NUM#): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

发生的频率(38、38、36次)比其他情况更高,因此值得进一步研究。

其他的:

 1 compiz (core) - Info: Loading plugin: ccp
 1 compiz (core) - Info: Loading plugin: animation

另一件事是查找已删除但仍打开的文件:

 sudo lsof / | egrep 'PID|(deleted)'

寻找较大的 SIZE/OFF 值。

并查找大型打开的文件:

sudo lsof / | \
    awk '{if($7 > 1048576) print $7/1048576 "MB" " " $9 }' | \
    sort -n -u 

答案2

我不确定为什么会发生这种情况,但这对于评论来说有点太大了。

我只需运行以下命令即可阻止它们的创建:

rm .xsession-errors.old

touch .xsession-errors.old

sudo chattr +i .xsession-errors.old

因此,删除该文件,创建一个新文件,然后设置不可变属性以停止任何写入或读取操作。

您将需要退出。

希望能帮助到你。

相关内容