Dan Revah Dan Revah - 3 months ago 13
Linux Question

Amazon EC2 - disk full

When I run

df -h
on my Amazon EC2 server, this is the output:

[ec2-user@ip-XXXX ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 25G 25G 0 100% /
tmpfs 4.0G 0 4.0G 0% /dev/shm

for some reason something is eating up my storage space.

Im trying to find all of the big files/folders
and this is what i get back:

[ec2-user@ip-XXXX ~]$ sudo du -a / | sort -n -r | head -n 10
993580 /
639296 /usr
237284 /usr/share
217908 /usr/lib
206884 /opt
150236 /opt/app
150232 /opt/app/current
150224 /opt/app/current/[deleted].com
113432 /usr/lib64

How can I find out whats eating my storage space?


Well, I think its one (or more) logfiles which have grown too large and need to be removed/backupped. I would suggest going after the big files first. So find all files greater than 10 MB (10 MB is a big enough file size, you can choose +1M for 1MB similarly)

sudo find / -type f -size +10M -exec ls -lh {} \;

and now you can identify which ones are causing the trouble and deal with them accordingly.

As for your original du -a / | sort -n -r | head -n 10 command, that won't work since it is sorting by size, and so, all ancestor directories of a large file will go up the pyramid, while the individual file will most probably be missed.

Note: It should be pretty simple to notice the occurence of similar other log files/binaries in the location of the files you so find, so as a suggestion, do cd in to the directory containing the original file to cleanup more files of the same kind. You can also iterate with the command for files with sizes greater than 1MB next, and so on.