xenon
@xenon
Too drunk to fsck

Куда делось место в пустом каталоге и как его увидеть?

(см дополнение внизу, ситуация стала проще и загадочнее )

Случайно заметил, что у меня один из почти пустых каталогов (всего 5 файлов, максимальный размер файла 254 байта, суммарно весят 528 байт, 8 каталогов) - но каталог по du весит аж 2.8 мегабайта. Рутовая файловая система, ext4. Пустяковый размер, но интересно, откуда такой дикий оверхед? (про размер кластера я в курсе, если что, но этим не могу объяснить феномен)

xenon@braconnier:~/locker-apps/test/users-OLD$ du -sh
2.8M	.

xenon@braconnier:~/locker-apps/test/users-OLD$ ls -al
total 2768
drwxr-xr-x 1 xenon xenon 2813952 Feb 11 20:49 .
drwxr-xr-x 6 xenon xenon    4096 Feb 10 22:52 ..
drwxr-xr-x 5 xenon xenon    4096 Jan 15 01:39 a
drwxr-xr-x 5 xenon xenon    4096 Feb 10 22:21 b

xenon@braconnier:~/locker-apps/test/users-OLD$ du -sh a
32K	a

xenon@braconnier:~/locker-apps/test/users-OLD$ du -sh b
20K	b

xenon@braconnier:~/locker-apps/test/users-OLD$ tree -h
.
|-- [4.0K]  a
|   |-- [4.0K]  r
|   |   |-- [ 254]  userinfo.json
|   |   `-- [ 254]  userinfo_create.json
|   |-- [4.0K]  rw
|   |   |-- [  10]  notebook.txt
|   |   `-- [   5]  test.txt
|   `-- [4.0K]  s
`-- [4.0K]  b
    |-- [4.0K]  r
    |-- [4.0K]  rw
    |   `-- [   5]  notebook.txt
    `-- [4.0K]  s

8 directories, 5 files


То есть, место теряется где-то внутри самого users-OLD. Каждый из двух вложенных каталогов весит мало. Пробовал `cp -a users-OLD /tmp/` и в таком случае новый каталог уже весит 56K (тоже как-то многовато, но меньше):

xenon@braconnier:~/locker-apps/test$ cp -a users-OLD/ /tmp/
xenon@braconnier:~/locker-apps/test$ du -sh /tmp/users-OLD/
56K	/tmp/users-OLD/


Как можно увидеть, куда уходит ~2,8Mb?

Дополнение:
Удалил оба подкаталога, теперь у меня один пустой каталог и он вести 2.7Mb
xenon@braconnier:~/locker-apps/test/users-OLD$ ls -al
total 2760
drwxr-xr-x 1 xenon xenon 2813952 Feb 11 22:22 .
drwxr-xr-x 6 xenon xenon    4096 Feb 10 22:52 ..
xenon@braconnier:~/locker-apps/test/users-OLD$ du 
2756	.
xenon@braconnier:~/locker-apps/test/users-OLD$ du --apparent-size
2748	.
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Судя по строке
drwxr-xr-x 1 xenon xenon 2813952 Feb 11 20:49 .
в этом каталоге в какой-то момент было очень много (тысячи) файлов.

В ext2/3/4 каталог это такой «специальный файл» в котором записаны имена (и ещё что-то) содержащихся в нём файлов. И если их много, то и сам каталог будет большим. Но при этом механизма уменьшения размера каталога не предусмотрено.
Стандартный вариант, скопировать все файлы из него в новый каталог, удалить этот и переместить новый на его место.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@zersh
возможно из каталога был удалён файл, который продолжает держать приложение?
попробуй
lsof | grep delete


найденный процесс - прибить/перезапустить
Ответ написан
Посмотрите вывод команды
lsof | grep '(deleted)'
Возможно файлы в каталоге были удалены, но при этом они фактически еще используются каким-то приложением и поэтому занимают место на диске.
Ответ написан
shambler81
@shambler81 Куратор тега Linux
ncdu поставь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы