问题
许多用户(包括我)时不时地发现磁盘空间的使用情况非常奇怪。有一天我有 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
因此,删除该文件,创建一个新文件,然后设置不可变属性以停止任何写入或读取操作。
您将需要退出。
希望能帮助到你。