设备上没有空间了

我得到的错误“没有空间留在设备上”,当我试图 scp 一些文件到一个分割机,

试图检查:

[root@...]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol01 18G   18G     0 100% /

等我找到了

du -sh /-> 它只提供5G

[... ~]$ df -i /
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup00-LogVol01
4685824  209516 4476308    5% /

文件系统好像满了。 我怎么才能知道哪个是这么大的?

303381 次浏览

如果某个大文件被删除了,但是仍然被某个进程打开,那么 du -shdf -h的输出之间可能会发生这种差异。使用命令 lsof | grep deleted查看哪些进程已经打开了已删除文件的描述符。您可以重新启动进程,空间将被释放。

要列出保存已删除文件的进程,使用具有 没有 lsof的 Linux 系统,我的技巧如下:

    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

也许你的索引节点用完了,试试 df -i

                     2591792  136322 2455470    6% /home
/dev/sdb1            1887488 1887488       0  100% /data

磁盘使用了6% ,但 inode 表已满。

您可以执行以下命令

Lsof/| grep 已删除

杀死进程 id,从而释放磁盘空间。