Fedora 12 上的磁盘空间

Fedora 12 上的磁盘空间

我在笔记本电脑上使用 Fedora 12。我有 10GB 磁盘空间,其中 2GB 是可用的。 2-3 天的正常运行时间后,空间结束,我必须重新启动。重新启动后,我恢复了 2GB 可用空间。我怎样才能防止这种情况发生?

我主要使用 Firefox、Chrome、Gedit、Rhythmbox 和后台:httpd、mysqld、conky。内存:1GB,交换空间:1.2GB。

答案1

首先,您必须找出是什么在侵蚀您的空间。我建议您追踪增长到该大小的物理文件或目录。

最简单的方法是检查/使用中的目录:(我建议将其运行为

 # du -hs /* 2> /dev/null
4.2M  /bin
25M   /boot
204K  /dev
6.7M  /etc
19G   /home
112M  /lib
16K   /lost+found
12K   /media
16K   /mnt
4.0K  /multimedia
1018M /opt
0     /proc
15M   /root
8.6M  /sbin
12K   /srv
4.2M  /storage
0     /sys
108K  /tmp
16G   /usr
4.3G  /var

现在,当计算机刚刚启动且尚未开始占用空间时运行该命令,并将输出保存在文件中 ( ~/record-space)

$ sudo du -hs /* 2> /dev/null 1> ~/record-space

然后,当您的计算机接近“FULL”状态时,您可以再次运行该命令,将输出保存在第二个文件中。

$ sudo du -hs /* 2> /dev/null 1> ~/record-space2

现在您可以比较这两个文件(~/record-space~/record-space2)以查看主目录有何不同......

我最喜欢的比较文件的方法是使用diff

$ diff ~/record-space{,2}

更新:请参阅吉尔对此答案的评论。

与其代替du -hs /*,不如使用du -xsh /tmp/* /var/*/* ~/.*

答案2

如果您的可用磁盘空间低于某个阈值,某些发行版或桌面环境可能会显示警告;您可以按照以下方法自行拼凑。在终端中,输入crontab -e(不是 root);这将弹出一个编辑器。输入以下行:

*/5 * * * * if [ "$(df -P / | awk 'NR==2 {print $4}')" -le 1048576 ]; then df /; fi

这意味着每五分钟 ( */5 * * * *),如果可用磁盘空间 ( "$(df -P / | …)") 降至 ( [ … -le … ]) 1048576KB (1GB) 以下,则向您发送一封包含可用磁盘空间的本地邮件(cron 将向您发送 的输出df /)。

你可能会注意到“已使用”和“可用”两栏只占总数的95%;那是因为预留空间并且不对您的问题负责(预留金额不会随时间变化)。

最有可能占用磁盘空间的地方是/tmp/var您的主目录(包括它们的子目录)。我第二斯特凡的建议设置基线du输出并将其与磁盘已满时的输出进行比较。

如果启动时空间被释放,可能有多种原因。某些程序可能正在创建大型临时文件;也许这些文件在程序终止时被清理,也许它们在启动过程中被清理,也许它们在程序再次启动时被清理。您无法观察到的一种情况du是,如果程序正在使用大文件,则它们被删除。当你在unix系统上删除一个文件时,首先只是文件名消失(文件被“取消链接”);仅当不再有对该文件的任何引用时,该文件的内容才会消失:既没有名称也没有打开该文件的进程。换句话说,如果程序创建一个大文件,打开它并删除它,则只有当程序关闭该文件时才会回收空间(这在程序终止时自动发生)。您无法使用 来查看已删除的文件du,但可以使用 来查看它们lsof(“stF”):

lsof | grep '(deleted)'

在 lsof 输出中,文件名之前的倒数第二个数字(即第 7 列)是文件大小。

相关内容