TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #579 690
Почему du и df показывают разный размер

Одна из классических загадок Linux:

df -h


Показывает:

/dev/sda1  100%


Но если проверить содержимое файловой системы:

du -sh /var
du -sh /home
du -sh /opt


Суммарный объём получается заметно меньше.
Куда пропало место?

▪️Что считают du и df

du подсчитывает размер файлов, которые видны в файловой системе.
df показывает занятые блоки на уровне самой файловой системы.
Из-за этого их значения могут различаться.

▪️Самая частая причина

Удалённый файл всё ещё открыт процессом.
Например:

rm app.log


Файл исчез из каталога, поэтому du его больше не видит.

Но если процесс продолжает писать в него, место останется занятым.
Найти такие файлы можно так:

lsof +L1


Пример вывода:

java 1234 user 5w REG ... app.log (deleted)


Пока процесс не завершится или не закроет дескриптор, место не освободится.

▪️Другие причины

Зарезервированные блоки ext4:

tune2fs -l /dev/sda1 | grep Reserved


Смонтированные файловые системы внутри каталогов:

mount | column -t


Или bind-монтирования, из-за которых данные учитываются неожиданным образом.

▪️Быстрая диагностика

Если диск внезапно заполнился:

df -h
lsof +L1


Во многих случаях проблема обнаруживается уже на втором шаге.

▪️Почему это важно

На продакшн-серверах часто удаляют огромный лог в надежде освободить место. Но если процесс продолжает держать файл открытым, свободное пространство не появится, а приложение может вскоре упасть из-за нехватки диска.

BashTex 📱 #scripts #du
  • 👍 5
  • 🔥 1
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →