Новинка Виртуальный VDS сервер в Нидерландах от 390р
Выберите продукт

Поиск больших файлов и освобождение места на диске Linux сервера

В этой статье мы рассмотрим, как найти большие файлы на Linux сервере и освободить место на диске. Узнайте о полезных утилитах, таких как ncdu, du и find, и получите практические примеры их использования для анализа дискового пространства.
Поиск больших файлов и освобождение места на диске Linux сервера

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

Что занимает место на диске?

Прежде чем приступить к анализу использования дискового пространства, важно понять, что именно занимает место на вашем диске. Это могут быть временные файлы, журналы, резервные копии, а также большие мультимедийные файлы и базы данных. Анализ этих данных поможет вам определить, какие файлы можно удалить или переместить.

На Linux сервере существует несколько мест, где файлы могут накапливаться и занимать дисковое пространство. Рассмотрим некоторые из них:

Лог-файлы

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

Лог-файлы обычно располагаются в директории /var/log. Для удаления старых логов можно использовать команду sudo rm /var/log/file.log, где file.log — это имя удаляемого файла. Для настройки ротации логов удобно использовать утилиту logrotate, которая позволяет задать периодичность ротации и количество сохраняемых файлов логов.

Временные файлы

Временные файлы, создаваемые приложениями в директории /tmp, могут занимать довольно много места. Их можно удалять вручную, но также существуют утилиты, которые автоматически удаляют устаревшие временные файлы. Например, systemd-tmpfiles или tmpreaper. Systemd-tmpfiles позволяет настроить удаление файлов при каждой загрузке системы или по истечении определенного времени. Tmpreaper удаляет файлы, которые не изменялись в течение заданного периода. Например, его можно настроить на удаление файлов, которые не менялись за последние 7 дней.

Установленные пакеты

Установленные пакеты продолжают занимать место на диске даже после того, как вы перестали пользоваться соответствующими приложениями. Чтобы освободить пространство, можно удалить неиспользуемые пакеты с помощью команды apt-get remove. Также полезно использовать команду apt-get autoremove, чтобы удалить пакеты, которые больше не нужны системе, но были установлены вместе с другими пакетами.

Ненужные файлы

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

FastFox VDS
Облачный VDS-сервер
Виртуальные серверы с быстрым запуском и гибкой конфигурацией от 390₽ / мес
Доступные локации
Россия Нидерланды

Анализ использования дискового пространства

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

Утилита ncdu

ncdu (NCurses Disk Usage) — это интерактивная утилита для анализа использования дискового пространства. Она предоставляет удобный интерфейс в терминале, позволяя легко находить и удалять ненужные файлы.

Пример работы с утилитой ncdu:

1. Установите ncdu, если она еще не установлена: для Ubuntu используйте команду

sudo apt-get install ncdu

Для установки на CentOS выполните:

sudo yum install ncdu

2. Запустите утилиту, введя ncdu /

ncdu начнет сканирование файловой системы и покажет древовидное представление файлов и папок, начиная с корня.

Управление в ncdu очень простое. Для навигации по списку используйте клавиши со стрелками вверх и вниз, для открытия папки нажмите Enter, а для удаления файла/директории — клавишу d. Также доступны команды перемещения в стиле Vim: h, j, k и l.

Если у вас нет возможности устанавливать новые утилиты, могут помочь установленные по умолчанию во всех дистрибутивах утилиты du и find, которые мы рассмотрим ниже.

Утилита du

du (Disk Usage) — это стандартная утилита для оценки использования дискового пространства. Она показывает размер каталогов и файлов в указанном пути.

Чтобы отобразить самые большие папки, включая подкаталоги в корневой директории /, выполните следующую команду:

du -Sh / | sort -rh | head -10

Разберем параметры этой команды:

  • -S: игнорирует размер подкаталогов, показывая только общий размер каталога.
  • -h: выводит размеры в удобочитаемом формате (например, K, M, G для килобайт, мегабайт и гигабайт).
  • sort -rh: сортирует вывод по размеру в обратном порядке (от большего к меньшему), при этом -r указывает на обратный порядок, а -h позволяет сортировать с учетом удобочитаемого формата.
  • head -10: выводит только первые 10 строк результата, что позволяет увидеть десять самых больших каталогов.

Чтобы проанализировать только определенную директорию, указывайте путь:

du -Sh /var/log | sort -rh | head -10

Если Вы хотите отобразить самые большие каталоги в текущем рабочем каталоге, запустите:

du -hs * | sort -rh | head -5

FastFox VDS
Облачный VDS-сервер
Виртуальные серверы с быстрым запуском и гибкой конфигурацией от 390₽ / мес
Доступные локации
Россия Нидерланды

Утилита find

find — это мощная утилита для поиска файлов в файловой системе. Она может использоваться для нахождения больших файлов применяя опцию -size

Например, чтобы найти самые большие файлы в корневой директории / включая поиск во всех подкаталогах, выполните следующую команду:

find / -type f -exec du -Sh {} + | sort -rh | head -n 10

Для поиска крупных файлов в определенной директории добавляйте путь:

find /var/logs -type f -exec du -Sh {} + | sort -rh | head -n 10

Для поиска крупных файлов в рабочей директории просто удалите путь:

find -type f -exec du -Sh {} + | sort -rh | head -n 10

Еще один пример, чтобы найти файлы, которые превышают 100 мегабайт, выполните следующую команду:

find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh

В результате самые крупные файлы окажутся в верхней части списка, а меньшие — ниже.

Вывод

Управление дисковым пространством на Linux сервере — важная задача для поддержания его производительности и стабильности. Используя утилиты такие как ncdu, du и find, вы можете быстро определить, какие файлы занимают место, и принять меры для освобождения диска. Регулярный анализ использования дискового пространства поможет вам избежать проблем с нехваткой места в будущем.

Поделиться статьей

Вам будет интересно

Как безопасно выполнить bootstrap MariaDB Galera после полного останова

Как безопасно выполнить bootstrap MariaDB Galera после полного останова

После одновременной остановки всех узлов Galera обычного запуска MariaDB недостаточно. Сначала найдите сервер с последней транзакц ...
CoreDNS в Kubernetes: исправляем CrashLoopBackOff, SERVFAIL и DNS-петлю

CoreDNS в Kubernetes: исправляем CrashLoopBackOff, SERVFAIL и DNS-петлю

Разберём, почему CoreDNS перезапускается или отвечает SERVFAIL, как обнаружить замкнутую пересылку DNS-запросов, проверить доступн ...
Apache Kafka KRaft на VDS: отдельные controller и broker

Apache Kafka KRaft на VDS: отдельные controller и broker

Соберём новый Kafka-кластер без ZooKeeper на шести Linux VDS: три узла controller образуют отказоустойчивый metadata quorum, а три ...