当我尝试将一些文件复制到 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% /
似乎文件系统已满。 我怎样才能找到哪一个占用了这么大的尺寸?
如果某些大文件已被删除,但仍被某些进程打开,则
du -sh
和 df -h
的输出之间可能会出现这种差异。使用命令 lsof | grep deleted
检查哪些进程已打开已删除文件的描述符。您可以重新启动该进程,空间将被释放。
也许你的索引节点用完了。 试试
df -i
2591792 136322 2455470 6% /home
/dev/sdb1 1887488 1887488 0 100% /data
磁盘已使用 6%,但 inode 表已满。
要列出Linux系统中保存已删除文件的进程,该系统具有no
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
您可以执行以下命令
lsof / |grep deleted
杀死进程 ID,从而释放磁盘空间。