Категории: LinuxОСи

Как проверить, что занимает место в Unix/Linux системе на примере CentOS

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

В Debian-подобных системах есть чудесная программа — ncdu (также могу порекомендовать gt5), но ее необходимо еще поставить, что невозможно, когда место уже закончилось. Поэтому мы будем пользоваться системными средствами.

Для начала убедимся, что место действительно закончилось. Запустим команду df (disk free)

df -h

Скорее всего, она покажет, что файловая систем, смонтированная в корень, занимает 100% места. Что ж, это полезно, но не говорит нам, что именно потребляет большую часть места. Для этого воспользуемся второй командой du (disk usage):

du -hc --max-depth=4 /var | sort -h

На данном примере она покажет, сколько места занимают файлы и подпапки в папке /var. дело в том, чт логи чаще всего хранятся в /var/log, поэтому именно этот путь мы и изучаем в первую очередь. Причем. мы указали, что она должна анализировать использование места с глубиной до 4 уровней вложения. Результат вы сортируем так, что самые большие файлы и папки оказываются в конце списка. Ключ -h выводит размер в удобочитаемом виде. Ключ -c добавляет общий размер запрошенной папки в конце (total).

Чтобы получить общий размер той или иной папки, используйте ключ -sh.

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

Также рекомендую проверить, сколько занимают места ваши текущие логи (не архивированные). Это можно сделать командой:

journalctl --disk-usage

Ограничить размер логов в будущем можно так:

journalctl --vacuum-size=1G

Важный момент: вы можете заметить, что в CentOS даже после удаления файлов, дисковое пространство не сильно освобождается. Это связано с тем, что какой-то процесс держит эти файлы. Более того, вы удаленные не увидите в отчете утилит du и ncdu. Чтобы это выяснить, запустите команду:

lsof | grep deleted

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

Вывод команды LSOF

В моем случае перезапуск сервиса xl2tpd решает проблему с этим лог файлом.

[Посещений: 581, из них сегодня: 1]

Свежие посты

Как посмотреть сертификат хоста через командную строку

Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…

21 февраля 2024

Использование choco через прокси

Choco - лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси,…

21 февраля 2024

Обзор SSD диска XrayDisk

В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…

3 декабря 2023

Linux: как переместить файлы папки с заменой?

Команда mv не перемещает с перезаписью поверх папки, если таковые уже существуют, поэтому часто вместо…

15 ноября 2023

Ремонт блока питания Dell OptiPlex 7010

В Dell Optiplex 7010 в корпусе SFF устанавливается фирменный блок питания одной из модификаций H240AS-00…

14 ноября 2023

Где хранятся файлы Telegram и других программ на Android?

Файловая система Android является разновидностью Linux-подобных систем и потому унаследовала многие элементы файловой структуры и…

13 ноября 2023