设备上没有剩余空间

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

我试过了

[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% / 

好像文件系统已满。 我怎么能find哪一个正在采取这么多的大小?

Solutions Collecting From Web of "设备上没有剩余空间"

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

也许你没有inodes。 试试df -i

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

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

要列出持有已删除文件的进程没有 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 

您可以执行以下命令

lsof / | grep已删除

杀死进程ID,这释放了磁盘空间。