没有可用磁盘空间

我有奇怪的情况,因为Linux df命令说没有可用的磁盘空间

[root@backup cache]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 72G 70G 0 100% / /dev/sda1 190M 11M 170M 7% /boot tmpfs 248M 0 248M 0% /dev/shm 

但是du -sh /*

 [root@backup cache]# du -sh /* 4.0K /bacula-restores 7.4M /bin 5.4M /boot 3.6T /data 116K /dev 55M /etc 204K /home 76M /lib 16K /lost+found 12K /media 0 /misc 16K /mnt 8.0K /mount 0 /net 8.0K /opt 0 /proc 2.3G /root 32M /sbin 8.0K /selinux 168K /share 8.0K /srv 0 /sys 361M /test 20K /tmp 3.2G /usr 1.5G /var 

你能告诉我哪里有问题吗? 我的空间在哪里? 我无法弄清楚:(

尝试:

 $ lsof +L1 

这将find文件的链接数小于1(文件已删除,但仍beeing写入)。

当杜和df不匹配的那些时候。

短版本:使用lsof来查找未链接但仍然打开的文件。 重新启动保存该文件的应用程序(或整个系统,如果你是懒惰的),你会得到你的空闲空间。

长版本:很可能你有一个应用程序打开并正在写入的文件,但是已经从文件系统中断开连接(删除)。

与NTFS不同,你有一个引用计数在分机。 这意味着,当你删除一个文件,你只需删除对它的引用。 在程序中打开文件会添加一个参考。 所以你将不得不弄清楚哪个程序保存文件。 这就是为什么当涉及UNIX中的文件操作时,经常会看到链接/取消链接的参考。 通常使用工具lsof查找文件。

这种行为的好处是,你永远不会得到你经常在Windows中得到的“文件已打开,所以不能删除它”的错误。 您也可以replace系统文件,如共享库,并且软件将使用旧的库,直到它重新启动(并从磁盘加载新的),而不必重新启动软件升级(Windows再次)。 你现在看到的不好的一面。 文件系统中可见文件的大小通常与磁盘上的数据量不匹配。

或者在这种情况下,穷人会(对于Linux)

 ls -l /proc/*/fd/ | grep deleted 

卸载时,我总是在空目录上执行“chattr + i / mount-point”。

如果在未挂载的情况下尝试写入,则返回“Permission denied”错误消息。 你马上就会注意到这个错误。

如果“/ mount-point”上有正确安装的资源,那么“chattr + i”没有任何作用,并且所有function都按预期运行。

你也可能想检查你的inode是否已经耗尽。 df -i

我知道出了什么问题。 我将NFS挂载为/ data,NFS发生networking错误连接,并且/ data被挂载为/而不是NFS共享。

我认为这可能与这样的机制有关

例子dir列表:// a [dir] file1 file2 / b [dir]

另一个设备:/ fileX fileY

如果我们将“另一个设备”挂载到/ a,我们可以通过/目录访问这个设备,但是原来的/ a仍然存在,但是被过度处理。 卸载上次挂载的设备后,我们可以访问原始目录。 这是有趣的财产,但实际上可以带来一些麻烦(不是我的这一刻)。

我有这个完全相同的问题,我的驱动器上的文件相对较小,但磁盘空间已被100%用完。 在执行备份驱动器同步后,我的主引导磁盘已经满了。

 >rsync -avxHAXW /media/backup1 /media/backup2 

在这个同步后,我的主磁盘已满….让我感到困惑。 事实certificate,我是不小心将文件复制到我的启动盘,而不是我的备份2。 我纠正了错误,删除了我的主磁盘上的大量文件,并重新rsync。 即使卸载和重新装入我的备份磁盘后,我的启动磁盘空间不足。 我什至试图清理我的启动磁盘上的大文件….

 >find . -type f -print0 | xargs -0 du -s | sort -n | tail -25 | cut -f2 | xargs -I{} du -sh {} 

删除了不再需要的大文件。 我也确保清空垃圾。

 >empty-trash 

所有这些工作之后,磁盘仍然满。 我决定重新启动机器。 重新启动后,我的启动磁盘分区从100%满了10%! 看来rsync进程必须继续在保持磁盘资源的后台运行。

我讨厌提供这个build议,但是在做完所有的磁盘清理之后,你可能只需要重新启动你的机器就可以终止挂在数据上的任何后台进程,从而防止磁盘真正被释放。

  • 你可以尝试减less根的保留空间思考tune2fs
  • 从另一台机器监控您的networking,检查是否有一些隐藏的恶意进程将您的机器用作warezstream量的服务器
  • 如果您有一个单一的内核尝试重新启动它,这应该禁用LKM rootkit,如果存在
  • 运行rkhunter,chkrootkit
  • 重新启动一个现场发行,并从RAM分析磁盘

除了已经提出的原因之外,还可以如下:

  • 一个不同的磁盘被安装在现有的充满数据的文件夹“之上”
  • 杜将计算所花费的磁盘的大小和DF将显示真的花了
  • 解决方法:(如果可能)卸载所有非根磁盘,并再次用du -md 1检查大小。 通过将隐藏的文件夹移动到其他地方或挂载到不同的地方来修复情况。