Для этого есть системная утилита unix . Выводит размер папки или всех подпапок.
Набросал небольшой скрипт, который через удаленную командную строку (ssh) визуально отображает занятое пространство в текущей папке. Используются только системные утилиты unix с тем чтобы он работал на большинстве хостингов.
[spoiler]
N.B. Внизу поста скрипт на php!
Если есть ssh доступ
Скачиваем , записываем на сайт. Далее подключаемся по ssh (для этого есть замечательная программа ).
Перед запуском скрипта надо сделать его исполняемым:
chmod +x mydisk.sh |

Разными цветами обозначаются разные уровни вложенности.
Размер текущей папки взят за 100%, показаны все папки и файлы внутри текущей, размер которых превышает 10%. Можно установить свой минимум. Например, если надо отобразить все файлы и папки, размером более 5% от текущей:
| ~/bin/mydisk.sh 5 |
| ~/bin/mydisk.sh -f |
| ~/bin/mydisk.sh -f 5 |
Скрипт ничего не удаляет, может быть использован на любой linux системе со стандартным набором служебных утилит: du, egrep, awk, cat, tac.
Дополнение от 06.11.2014
Можно сразу скачать скрипт на удаленный сервер через короткую ссылку:
wget http://bit.do/mydisk chmod +x mydisk |
Как узнать размер базы данных
Открываем страницу резервного копирования, переходим на вкладку Расширенные, там рядом с опцией "Архивировать базу данных" показан размер базы:

Тут же отображается размер данных статистики и поисковой индекс.
Если надо получить подробную информацию по таблицам, в настройках модуля "Монитор производительности" включаем опцию "Просмотр таблиц". Теперь можно перейти на страницу Настройки - Производительность - Таблицы и увидеть отдельно размер каждой таблицы.
P.S. Скрипт изначально делал для себя, решил поделиться. Вот теперь думаю: может для большинства удобнее было бы иметь скрипт на php чтобы работал через браузер?

Дополнение от 05.09.2011
Подсчет размеров файлов через браузер
Восполнил пробел и сделал аналогичный по функциональности скрипт , подсчитывающий размер файлов в текущей папке через браузер. Работает по шагам (т.е. ограничение на время выполнение скриптов не хостинге не будет мешать), результат сохраняет во временный файл.

С визуализацией не стал заморачиваться, фактически переписал код на php. Самым сложным оказалось - правильно сохранить промежуточный результат сканирования между шагами.
Я давно уже свыкся, пишу du -sh *, отдает список вида
10MB dir1/
200MB dir2/
16KB file1
....
Затем захожу внутрь "проблемной" папки и повторяю процедуру, пока не найду кто там так распух.
Хотя есть смысл попробовать этот вариант, нужно приобщаться к прогрессу.
<? function dirsize( $d ) { $dh = opendir( $d ); $size = 0; while( ( $f = readdir( $dh ) ) !== false ) { if ( $f != "." && $f != ".." ) { $path = $d . "/" . $f; if( is_dir( $path ) ) { $size += dirsize( $path ); } elseif( is_file( $path ) ) { $size += filesize( $path ); } } } closedir($dh); return $size; } function getFilesSize($path) { $fileSize = 0; $dir = scandir($path); foreach($dir as $file) { if (($file!='.') && ($file!='..')) if(is_dir($path . '/' . $file)) $fileSize += getFilesSize($path.'/'.$file); else $fileSize += filesize($path . '/' . $file); } return $fileSize; } echo "Данный скрипт перебирает все файлы в папке /upload<br ><br >"; echo "Размер папки: ".round( dirsize($_SERVER["DOCUMENT_ROOT"].'/upload/') / 1024 , 2 )." KB."; ?>Там будет нюанс - если делать общий на всю папку сайта, будет уходить в 503.
Warning: Division by zero in /home/ХХХ/ХХХ.ru/docs/mydisk.php on line 79
В чем может быть проблема?