Главная >> Система >> Очистка системы Debian

Очистка системы Debian

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

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


Содержание статьи

Очистка Debian 10

1. Найдите большие пакеты

Одно дело когда ненужная программа занимает несколько мегабайт, тогда ее можно и оставить, на случай если вдруг когда пригодится, но вот если программа не нужна и занимает много, ситуация совсем другая, это ведь все таки очистка Debian от мусора. Чтобы найти все самые большие пакеты выполните команду:

dpkg --get-selections | cut -f1 | while read pkg; do dpkg -L $pkg | xargs -I'{}' bash -c 'if [ ! -d "{}" ]; then echo "{}"; fi' | tr '\n' '\000' | du -c --files0-from - | tail -1 | sed "s/итого/$pkg/"; done

Если запустить команду от root, а именно это нужно сделать, то в директории /root появится файл packages.log со списком всех пакетов, упорядоченных по размеру.

Также вы можете использовать команду:

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

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

2. Удалите конфигурационные файлы

Это важный процесс, когда проводится очистка Debian 8. Если вы устанавливали много пакетов с помощью apt-get, то скорее всего, их конфигурационные файлы не были удаленны и все еще занимают место на диске. Конечно, можно использовать для удаления команду  apt-get purge, но многие просто забывают об этом. Следующая команда выведет список всех пакетов, которые были удаленны, но оставили конфигурационные файлы в вашей системе:

dpkg --list | grep '^rc '

Теперь, вы можете отфильтровать вывод и удалить все эти конфигурационные файлы, такой командой:

dpkg --list | grep '^rc ' | awk '{ print $2 }' | xargs dpkg -P

3. Очистка лишних пакетов

С зависимостями в систему устанавливается большое количество пакетов. Но при удалении ранее установленных пакетов их зависимости не удаляются. Таким образом, все это может накапливаться в системе. Чтобы удалить лишние пакеты и освободить место на диске выполните:

apt-get autoremove
apt-get clean

Опция autoremove используется для удаления ненужных пакетов, как раз тех, которые были установлены раньше как зависимости, но больше не нужны в вашей системе. А вторая команда просто удаляет все пакеты из кеша apt.

4. Очистка рекомендуемых пакетов

На удалении зависимостей очистка Debian 8 не заканчивается. Кроме зависимостей, вместе с программой устанавливаются рекомендуемые пакеты. Но поскольку они не находятся в зависимостях, то не удаляются вышеописанным способом. Такие пакеты можно найти с помощью следующей команды:

aptitude search '?and( ?automatic(?reverse-recommends(?installed)), ?not(?automatic(?reverse-depends(?installed))))'

Утилита отобразит список пакетов с описаниями:

Пересмотрите список и если все правильно удалите все, только будьте осторожны, здесь могли оказаться полезные программы:

aptitude search '?and( ?automatic(?reverse-recommends(?installed)), ?not(?automatic(?reverse-depends(?installed))))' | awk '{ print $3 }' | xargs dpkg -P

5. Удалите лишние файлы

Очистка системы Debian 8 не будет полной, если не удалить засоряющие систему файлы. Дело в том, что не все файлы в файловой системе Linux принадлежат каким-либо пакетам. Файлы могли быть созданы вручную вами самими и забыть о них, а могли остаться после установки программ через make install. Так или иначе, многие из них больше не нужны.

Чтобы найти все такие файлы используйте утилиту cruft. Она сравнивает вашу файловую систему с базой данных менеджера пакетов и выводит файлы которых там нет.

Чтобы проверить файловую систему исключая /home, /tmp и /var используйте команду:

sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp

Результат работы команды будет сохранен в файле report. Обратите внимание, что обработка выполняется только в пределах одной файловой системы, и если ваш /usr примонтирован как другой раздел используйте опцию -d /usr/.

Теперь вы можете переходить к анализу отчета. Но будьте аккуратны не удаляйте файлы, если не знаете откуда они там взялись, многие файлы будут создаваться служебными программами и библиотеками, например Grub создает несколько файлов в каталоге /boot, а openssl сохраняет свои сертификаты в /etc/.

6. Удаление файлы логов

Со временем в системе накапливаются файлы логов. Они могут занимать по несколько сотен мегабайт, поэтому логи тоже нужно вовремя удалять. Все логи находятся в папке /var/log. Просто удалите те, которые занимают много места и вам не нужны:

du -h /var/log/

7. Удалите большие файлы

Нам нужно оценить насколько успешно прошла очистка диска Debian. Сначала давайте посмотрим сколько места занимают все файлы на жестком диске вашего сервера:

df -h

Теперь отсортируем все файлы по размеру, с помощью одной из следующих команд:

du -h | grep ^[0-9.]*M | sort -rn
du -h | grep ^[0-9.]*G | sort -rn

Первая отбирает файлы, размер которых исчисляется в мегабайтах, а вторая - в гигабайтах. Кроме того, вы можете воспользоваться утилитой ncdu. Но её надо сначала усстановить:

sudo apt install ncdu

Затем запустите:

ncdu /

Выводы

С помощью описанных здесь команд вы можете держать свою систему в чистоте и порядке, но будьте готовы, что если удалите, что-то не то, например, пакет libc6, systemd, apt-get, coreutils или что-то подобное будьте готовы потратить вечер, на то, чтобы все исправить. Как видите, очистка сиcтемы Debian 10 выполняется не так уж сложно. Но обратите внимание, что все команды, описанные в этой статье выполняются от имени суперпользователя, иначе ничего работать не будет.

2 комментария к “Очистка системы Debian”

  1. Здравствуйте. Мне кажется, что в команде:
    dpkg --list | grep '^rcb' | awk '{ print $2 }' | xargs dpkg -P
    есть ошибка (надо наверное не grep '^rcb', а grep '^rc '), т.е. правильно будет:
    dpkg --list | grep '^rc ' | awk '{ print $2 }' | xargs dpkg -P.
    Во всяком случае у меня отработал именно вариант с grep '^rc '.

    Ответить

Оставьте комментарий