如何查找填充我的磁盘的文件

如何查找填充我的磁盘的文件

我遇到的问题是我的磁盘已满,但我找不到填充它的文件。当我跑步时df -h我得到:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        53G   51G  2.0G  97% /
devtmpfs        2.0G  4.0K  2.0G   1% /dev
none            395M  204K  395M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

我清除了所有缓存、日志和自动删除文件。当我读到这个命令时,du -h /var | sort -nr | head -n 10 我得到:

1016K   /var/www/soFit/cache/class_folder-242/soinfitcom/cl
1016K   /var/www/landing/PHPMailer/vendor
1008K   /var/www/dating/libs/vendor
988K    /var/www/libs/mPDF/ttfontdata
968K    /var/www/landing/PHPMailer/vendor/phpmailer
964K    /var/www/landing/PHPMailer/vendor/phpmailer/phpmailer
960K    /var/www/soFitTest/groupChats/vendor/symfony/http-foundation
960K    /var/www/soFitTest/chat/vendor/symfony/http-foundation
960K    /var/www/soFit/groupChats/vendor/symfony/http-foundation
960K    /var/www/soFit/chat/vendor/symfony/http-foundation

使用du -x / | sort -rn | head -n 10

2471828 /
1592004 /var
1091532 /var/lib
929776  /var/lib/mysql
776620  /usr
715092  /var/lib/mysql/soFit
306064  /var/www
291376  /usr/lib
269176  /usr/share
180868  /var/www/libs

我的 mysql 数据库大小约为 500MB,不是那么大。

51G的空间都去哪儿了?

我的 Linux 是:Debian GNU/Linux 7.11(喘息)

du -h --max-depth=1 /
4.0K    /dev
6.4M    /etc
4.0K    /mnt
759M    /usr
4.0K    /selinux
5.5M    /root
20K     /home
24K     /srv
4.0K    /opt
0       /sys
8.0K    /tigo
8.0K    /media
16K     /lost+found
1.6G    /var
6.5M    /sbin
4.0K    /lib64
7.0M    /bin
4.0K    /.ssh
204K    /run
15M     /lib
4.0K    /boot
12K     /tmp
du: cannot access `/proc/4557/task/19375/fdinfo/312': No such file or directory
du: cannot access `/proc/13067/task/13067/fd/4': No such file or directory
du: cannot access `/proc/13067/task/13067/fdinfo/4': No such file or directory
du: cannot access `/proc/13067/fd/5': No such file or directory
du: cannot access `/proc/13067/fdinfo/5': No such file or directory
0       /proc
61M     /backups

2.4G/

答案是使用以下命令查找文件lsof | grep -i deleted并删除该文件。

完全关闭机器而不仅仅是重新启动

var/libs/mysql 删除(无).log

答案1

可能有一些进程使已删除的大文件保持打开状态。您可以使用 找到此类打开的文件lsof,或者如果可行的话您可以重新启动计算机(即,如果它不是需要保持运行的服务器)。看查找并删除打开但已被删除的大文件 (抱歉,在我的手机上打字,所以复制/粘贴不太舒服)

答案2

您可以du -h--max-depth参数一起使用,该参数将获取您定义的深度中的文件夹的摘要,例如,对于 2 个文件夹的深度,您可以使用:

du -h --max-depth=2 /

一旦您找到哪些文件夹保存了大部分数据(提示 - 大小将以 G 为单位),您可以在这些文件夹上执行相同的命令:

du -h --max-depth=2 /folder/which/holds/GB/OF/DATA

注意:有一些图形工具可以提供帮助(取决于您使用的 Linux)

如何在 Linux 中分析磁盘使用模式保存一些 Linux GUI 实用程序的链接

相关内容