Размеры папок и дисков в Linux. Команды df и du

0
13107
Обложка статьи: Размеры папок и дисков в Linux. Команды df и du

Нужно понять, чем занят диск: df показывает файловые системы, du — каталоги. Это разбор переполнения, не «защита сервера».

1. Свободное место по томам

df -hT
df -h / /var /home

Пример:

Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/mapper/rl-root xfs   50G   41G  9.1G  82% /
/dev/sda1      ext4  488M  120M  332M  27% /boot

Смотрите Use% и Avail. Отдельно inode: диск «полный», а гигабайты ещё есть — кончились inode.

df -i /

2. Какие каталоги съели место

sudo du -xhd1 /
sudo du -sh /var /var/log /var/lib /home /tmp
sudo du -xh /var/log | sort -h | tail -n 20

-x не уходит на другие тома. -d1 — один уровень. Пример хвоста:

1.2G    /var/log/journal
4.8G    /var/log
12G     /var

Интерактивно, если пакет есть:

sudo ncdu -x /

3. Не удалить не то

Перед чисткой /var/log посмотрите, крутится ли журнал: journalctl --disk-usage. Не трогайте каталог репозитория Borg и бэкапы — см. Borg. Не чистите /var/lib/docker командой rm.

df показывает больше, чем du

Если df говорит «занято 90%», а du находит в сумме гораздо меньше, место держат удалённые, но открытые файлы: процесс продолжает писать в файл, который удалили. Найдите их:

sudo lsof +L1
sudo lsof -nP | grep '(deleted)' | head

Перезапустите процесс, который держит файл (часто это сервис с большим журналом), и место освободится. Не обнуляйте журнал «наугад» без понимания, кто его пишет.

Найти самые большие файлы

sudo find / -xdev -type f -size +500M -exec ls -lh {} + 2>/dev/null | sort -k5 -h | tail

Ключ -xdev не выходит за пределы раздела.

Типовые источники мусора и безопасная чистка

Что Как посмотреть и очистить
Журнал systemd journalctl --disk-usage, затем sudo journalctl --vacuum-size=500M
Кэш пакетов sudo apt clean или sudo dnf clean all
Docker docker system df, очистка docker image prune по списку, а не rm каталогов
Старые ядра sudo apt autoremove --purge или sudo dnf remove --oldinstallonly
Журналы приложений Настройте ротацию в /etc/logrotate.d/ и отправку на сервер: сбор логов

Не удаляйте то, происхождение чего не понимаете: перед удалением проверьте, кто пишет в каталог, и убедитесь, что есть копия. Предупреждать о нехватке места лучше заранее: мониторинг дисков. Если место действительно закончилось, расширьте том: LVM.

Как проверить

df -hT
df -i /
sudo du -xhd1 /

Вы знаете, какой том полный, какой каталог больше остальных, и inode не на 100%.

Источники

Комментарии закрыты.