我的服务器根分区已满,我似乎无法弄清楚是什么占用了所有空间,我的日志文件最小。有谁能帮我找到是什么突然占用了我的空间?
答案1
有几种方法可以检查这一点。
在你开始之前:
确保您不会浪费时间在我列出的方法上,确保您没有在计算机上运行的进程中打开大量已删除的文件:
mgodby@mg-ws1:~$ sudo lsof -s | grep deleted | less
此命令的注意事项:
- 这将打开一个
less
会话,列出文件系统上仍然占用空间的已删除文件。 - 请参阅第 7 列以查看这些文件的大小。不要担心小于 9 位的数字,因为大小是以字节为单位的。
- 如果通过这种方式发现任何已删除的大型文件,请结束或重新启动使这些文件保持打开状态的任何进程。如果失败,请重新启动。
文件及目录大小查询方法:
要查找占用系统大量空间的未删除的正常文件和目录,请尝试以下两种方法:
方法 1:
逐层深入目录,直到找到罪魁祸首。我们可以这样做:
mgodby@mg-ws1:~$ cd /
mgodby@mg-ws1:/$ sudo du -xm -d 1 . | sort -n | tail -10
1 ./srv
1 ./tmp
11 ./bin
15 ./sbin
25 ./etc
385 ./opt
684 ./lib
1223 ./var
4805 ./usr
7145 .
mgodby@mg-ws1:/$ cd usr
mgodby@mg-ws1:/usr$ sudo du -xm -d 1 . | sort -n | tail -10
1 ./games
1 ./local
21 ./sbin
22 ./include
219 ./src
309 ./bin
1431 ./share
2806 ./lib
4805 .
mgodby@mg-ws1:/usr$ cd lib
mgodby@mg-ws1:/usr/lib$ sudo du -xm -d 1 . | sort -n | tail -10
87 ./firefox
93 ./gcc
123 ./vmware-ovftool
126 ./python2.7
180 ./jvm
186 ./chromium-browser
259 ./libreoffice
74 ./vmware
718 ./x86_64-linux-gnu
2806 .
mgodby@mg-ws1:/usr/lib$
您可以重复此过程,直到找到占用最多空间的内容。
此方法的注意事项:
- 对于命令
du
,标志-m
以兆字节显示大小,-x
排除其他文件系统上的结果,并将-d 1
搜索深度更改为 1 层。 sort -n
只是按数字顺序对输出进行排序。tail -10
仅显示最后 10 条结果,与以下结果结合使用时,实际上会忽略除 10 条最大结果之外的所有结果sort -n
- 除此以外
sudo du -xm -d 1 . | sort -n | tail -10
,您还可以使用sudo du -xh -d 1 . | sort -h | tail -10
来du
选择它认为最适合文件或目录大小的单位。这是个人喜好问题(感谢 muru 的建议)。
方法 2:
一次查询文件系统上的所有文件和目录,并按大小查看排名靠前的结果:
mgodby@mg-ws1:~$ sudo du -xm / | sort -n | tail -50
92 /usr/share/help
93 /usr/lib/gcc
93 /usr/lib/gcc/x86_64-linux-gnu
96 /usr/src/linux-headers-3.16.0-22
97 /usr/lib/chromium-browser/libs
97 /usr/src/linux-headers-3.16.0-23
98 /opt/openoffice4/share
106 /usr/lib/python2.7/dist-packages
113 /usr/share/doc
123 /usr/lib/vmware-ovftool
126 /usr/lib/python2.7
137 /lib/modules/3.13.0-37-generic/kernel/drivers
139 /var/lib/apt
139 /var/lib/apt/lists
143 /lib/modules/3.16.0-22-generic/kernel/drivers
143 /lib/modules/3.16.0-23-generic/kernel/drivers
165 /var/cache/apt-xapian-index
165 /var/cache/apt-xapian-index/index.1
180 /lib/modules/3.13.0-37-generic/kernel
180 /usr/lib/jvm
184 /lib/modules/3.13.0-37-generic
186 /usr/lib/chromium-browser
188 /lib/modules/3.16.0-22-generic/kernel
188 /lib/modules/3.16.0-23-generic/kernel
192 /lib/modules/3.16.0-22-generic
192 /lib/modules/3.16.0-23-generic
213 /usr/lib/libreoffice/program
219 /usr/src
259 /usr/lib/libreoffice
264 /opt/openoffice4/program
288 /usr/lib/vmware/modules/binary
293 /usr/lib/vmware/modules
309 /usr/bin
321 /var/lib
368 /usr/share/icons
385 /opt
385 /opt/openoffice4
568 /lib/modules
574 /usr/lib/vmware
611 /var/cache/apt/archives
684 /lib
686 /var/cache/apt
718 /usr/lib/x86_64-linux-gnu
870 /var/cache
1223 /var
1431 /usr/share
2806 /usr/lib
4805 /usr
7145 /
mgodby@mg-ws1:~$
此方法的注意事项:
-50
进行调整tail -50
以提供您想要的结果数量,即tail -30
前 30 个结果。- 或者,用 替换,
sudo du -xm / | sort -n
以sudo du -xh / | sort -h
允许du
选择它认为最适合文件或目录大小的单位。这是个人喜好问题(感谢 muru 的建议)。
使用哪种方法?
方法 2 的结果可能比方法 1 更快地让您得到最终答案,并给您更多“大局”类型的结果,但方法 1 的组织性更好,更容易理解。