Some handy commands for quickly checking whats eating up storage space on linux vps(in my case it was poorly configured github action runners and chonky npm and nextjs cache)
Get a High-Level Overview with df
The df command (Disk Free) gives you a summary of available and used disk space on all mounted filesystems. To get a human-readable output:
df -h
What the flags mean:
-h: Stands for human-readable. This makes the output display sizes in KB, MB, or GB instead of just raw block counts.
Sample output:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 45G 1.5G 97% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 100G 85G 10G 90% /home
Drill Down with du, sort, and head
Once you know which filesystem is full (say /), you need to find which directories inside it are using the most space. This is where du (Disk Usage), sort, and head come into play.
sudo du -ahx / | sort -rh | head -10
sudo: Required to access system directories and get accurate readings.
du: Stands for Disk Usage.
a: Lists both files and directories (not just directories).
h: Again, human-readable.
x: Restricts the command to a single filesystem, preventing it from traversing into mounted volumes like /proc, /mnt, or /boot.
/
The directory you're scanning. Replace this with any path like /var
, /home
, etc., to narrow your search.
sort -rh:
r: Sorts in reverse order (largest files first).
h: Sorts human-readable sizes correctly (so 1G is more than 500M).
head -10: Displays only the top 10 largest entries.
example output
2.5G /var/log/journal
1.8G /usr/lib
1.2G /var/cache
900M /home/user/videos
700M /var/log/syslog.1
This tells you exactly where your storage is being used. Now you can clean things up with precision.