Категории: 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 решает проблему с этим лог файлом.

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

Свежие посты

Процессы зомби, демоны и сироты в Linux

Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…

12 октября 2024

Изучаем сертификаты, приватные ключи и keystore

Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…

20 июля 2024

Восстановление доступа к Docker Hub

Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…

30 мая 2024

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

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

21 февраля 2024

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

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

21 февраля 2024

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

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

3 декабря 2023