Where are the elephants?
The df -h command shows the remaining space in human readable format.
If your disk is almost full (Use% column in the df -h result), you should go for the du command, see below.
Also, it can be useful to check the free inodes with df -i, in this case, elephants could be thousands of mice (small files). This is misleading because the df -h command can show that there is plenty of space left but the issue could just be too many inodes, often caused by temporary files, maildrop, ... .
If the IUse% column in the df -i result tends to be close to 100%, this is probably the problem.
Then, you can print the list of every directory, sorted by the less files to the more files per directory (largest number of files will be at the bottom).
find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
If your problem is really elephants, then the du command can be used to identify the heavy weighted directories.
Sort by weight on the first level of a directory (change --max-depth value to have more levels).
du --si --max-depth=1 <dir>| sort -n -r
Or just identify the directories that contains G(igabytes) as output of the du command
du -h <dir> | grep '[0-9\.]\+G'
Then we can refine per (M)egabytes
du -h <dir> | grep '[0-9\.]\+M'
Get the sizes of MySQL tables
If your /var/lib/mysql/ is crowded, this query orders by size the tables in each database.
SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC;