No space left on device [closed]

I am getting the error "No space left on device" when i tried to scp some files to a centos machine,

tried to check:

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

And when I do

du -sh / -> it gives only 5G

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

seems like file system is full. How can i find which one is taking these much size?

3

4 Answers

Such difference between the output of du -sh and df -h may happen if some large file has been deleted, but is still opened by some process. Check with the command lsof | grep deleted to see which processes have opened descriptors to deleted files. You can restart the process and the space will be freed.

8

Maybe you are out of inodes. Try df -i

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

Disk used 6% but inode table full.

3

To list processes holding deleted files a linux system which has no lsof, here's my trick:

 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 

You can execute the following commands

lsof / |grep deleted

kill the process id's, which free up the disk space.

2

You Might Also Like