设备上没有剩余空间

Fut*_*eek 50 linux filesystems centos

当我试图将一些文件scp到centos机器时,我收到错误"设备上没有剩余空间"

我试过了

[root@...]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol01 18G   18G     0 100% /
Run Code Online (Sandbox Code Playgroud)

而当我这样做

du -sh / - >它只给5G

[... ~]$ df -i /
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup00-LogVol01
                     4685824  209516 4476308    5% /
Run Code Online (Sandbox Code Playgroud)

好像文件系统已满.我怎样才能找到哪一个这么大?

Vol*_*enD 55

如果某个大文件已被删除,但某些进程仍然打开,则输出du -shdf -h可能会发生这种差异.检查命令lsof | grep deleted以查看哪些进程已打开已删除文件的描述符.您可以重新启动该进程,并释放空间.

  • 如何重新启动该过程?@用户3584460 (3认同)
  • 我试图杀死这些进程并且它正在运行.谢谢! (2认同)
  • 永远不会猜到删除的文件仍然可以驻留.谢谢你. (2认同)

小智 46

也许你没有inodes.尝试df -i

                     2591792  136322 2455470    6% /home
/dev/sdb1            1887488 1887488       0  100% /data
Run Code Online (Sandbox Code Playgroud)

磁盘使用6%但inode表已满.

  • 这个.就在这儿. (3认同)

Ben*_*nyó 10

要列出持有已删除文件的进程一个没有 的linux系统lsof,这是我的诀窍:

    pushd /proc ; for i in [1-9]* ; do ls -l $i/fd | grep "(deleted)" && (echo -n "used by: " ; ps -p $i | grep -v PID ; echo ) ; done ; popd
Run Code Online (Sandbox Code Playgroud)