我遇到的问题是我的磁盘已满,但我找不到填充它的文件。当我跑步时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 实用程序的链接