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

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

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

Находим большие пакеты

Одно дело когда ненужная программа занимает несколько мегабайт, тогда ее можно и оставить, на случай если вдруг когда пригодится, но вот если программа не нужна и занимает много, ситуация совсем другая, это ведь все таки очистка 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/total/$pkg/"; done | sort -rn > ~/packages.log.txt

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

15312 perl-modules
14192 php5-cgi
12588 perl
12400 coreutils
12396 iso-codes
11232 aptitude
10684 binutils
9916 python2.5

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

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

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

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

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

dpkg --list | grep '^rc '

rc binutils 2.20.1-15 The GNU assembler, linker and binary utilities
rc dbus 1.2.24-3 simple interprocess messaging system
rc dpkg-dev 1.15.8.5 Debian package development tools
rc erlang-base 1:14.a-dfsg-2 Erlang/OTP virtual machine and base applications
rc fakeroot 1.14.4-1 Gives a fake root environment

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

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

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

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

apt-get autoremove
$ apt-get clean

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

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

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

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

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

i A apt-xapian-index - maintenance and search tools for a Xapian index of Debian packages
i A exim4 - metapackage to ease Exim MTA (v4) installation
i A file - Determines file type using "magic" numbers
i A heirloom-mailx - feature-rich BSD mail(1)

Пересмотрите список и если все правильно удалите все:

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

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

Очистка системы 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/.

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

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

cd /var/log/squid
$ for i in *; do >$i; done

То же самое можно повторить и для других программ или выполнить удаление ненужных лог файлов вручную.

Удаляем большие файлы

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

 df -h

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

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

Выводы

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

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (10 оценок, среднее: 4,60 из 5)
Загрузка...

2 комментария

  1. Борис Февраль 24, 2018 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: