Любая, даже самая совершенная операционная система со временем накапливает в себе мусор в виде неиспользуемых пакетов, ненужных файлов, давних логов, кеша уже устаревших пакетов и т д. Не исключение и зарекомендовавшая себя как самую стабильную систему - 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 выполняется не так уж сложно. Но обратите внимание, что все команды, описанные в этой статье выполняются от имени суперпользователя, иначе ничего работать не будет.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали










в как единицах размер выводится?
Здравствуйте. Мне кажется, что в команде:
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 '.