我的根分区容量一直保持在 100%,但我不知道原因!

我的根分区容量一直保持在 100%,但我不知道原因!

如果您正在寻找解决方案,请参阅编辑#3。

我正在运行 Xubuntu 16.04 LTS,我有一个 ~40 GB 的根分区,根据系统监视器(以 root 身份)显示,该分区已 100% 满。它肯定是满了,因为许多程序无法正常运行。

系统监视器磁盘使用情况

但是,出于某种原因,我似乎无法弄清楚是什么在使用空间!Baobab(以 root 身份)仅报告我的根分区上总共使用了 15.5 GB!

Baobab 磁盘使用情况

编辑:另外,这是 /var - 人们说它很大。Baobab 仅报告 /var 有 1 GB,而 /var/log 是空的。我试过运行,sudo rm -R /var/log但没有任何效果。

在此处输入图片描述

那么,我该如何找出正在使用我的磁盘空间的内容,以及如何防止它填满我的根分区?这是一个大问题,请帮忙!提前谢谢您 :)

编辑2:正如在答案部分所发布的,sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u返回11222.7MB /var/log/kern.log 11222.9MB /var/log/syslog,但是,我似乎无法弄清楚如何删除这些文件,此外,我想弄清楚如何永久防止这些文件变得这么大。这个答案另一个问题建议我查看日志并查看其中的内容,因此理想情况下,我希望以某种方式读取这些神秘文件的内容。

编辑 3:我通过将 /var/log 安装在单独的分区上暂时解决了此问题。

但是,仍然有某种错误导致此问题。如果您希望修复此错误,请将信息(或至少引起注意)提供给错误报告:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1643719https://bugzilla.kernel.org/show_bug.cgi?id=188331谢谢 :)

答案1

有两种类型的文件访问会占用磁盘空间,但不会显示在您的工具中:已删除(但仍打开)的文件和正在写入的文件。

我定义了这两个别名,我发现它们非常有用:

# from http://www.certpal.com/blogs/2010/12/find-open-files-in-linux-using-lsof/
alias bigopenfiles="sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u" 

alias deletedfiles="sudo lsof / | egrep 'PID|\(deleted\)'"

答案2

你的 /var 非常大。检查 /var/log

您可以使用此命令来查找大文件:

sudo find /var -xdev -type f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

当然你可以调整大小(本例中为 500000k)

之后,你可以删除或压缩它们

答案3

您可能无法使用工具查看它,因为该文件已打开。请以 root 身份尝试此操作

> /var/log/syslog

确实,包括>。这将截断日志。

笔记:

  • 这将会删除日志!

答案4

正如 @waltinator 所说这里如果您发现删除的 syslog 文件在删除后仍然占用更多空间,并且无法使用rm -R /var/log或释放它> /var/log/syslog,请终止 Syslog 守护进程,(在 Elementary OS(Ubuntu 18.04)中,我killall rsyslogd释放了打开的文件并释放了大约 15Gb 的 / 空间)

如果有的话,最好将 /var 挂载在单独的分区中。

相关内容