根文件系统已满

根文件系统已满

我的服务器根分区已满,我似乎无法弄清楚是什么占用了所有空间,我的日志文件最小。有谁能帮我找到是什么突然占用了我的空间?

答案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 -10du选择它认为最适合文件或目录大小的单位。这是个人喜好问题(感谢 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 -nsudo du -xh / | sort -h允许du选择它认为最适合文件或目录大小的单位。这是个人喜好问题(感谢 muru 的建议)。

使用哪种方法?

方法 2 的结果可能比方法 1 更快地让您得到最终答案,并给您更多“大局”类型的结果,但方法 1 的组织性更好,更容易理解。

相关内容