Команда для очистки линукса

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

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

Конечно, Ubuntu, как и любая другая операционная система Linux засоряется намного меньше Windows, здесь нет реестра, и архитектура системы рассчитана так, чтобы оставлять мусор по минимуму. Но кроме системных недочетов, в файловой системе могут накапливаться ненужные файлы пользователей и программ. Поэтому очистка ubuntu от мусора необходима.

Как очистить Ubuntu

В этой инструкции будет рассмотрена очистка системы Ubuntu. Мы рассмотрим как очистить ненужные, не используемые пакеты, удалить пользовательские файлы и уже ненужные файлы настроек, которые остались в системе, а также найдем все файлы, не принадлежащие ни одному пакету, чтобы вы могли сами оценить нужны они вам или нет. Будет рассмотрена очистка кэша в ubuntu и удаление старых ядер.

1. Использование дискового пространства

Очистка системы Ubuntu 20.04 должна начаться с выяснения, какие файлы потребляют больше всего пространства на диске. В этом вам поможет программа ncdu. Это консольная утилита с псевдографическим интерфейсом, но мне она нравится больше всего. Сначала её надо установить. Для этого выполните в терминале:

sudo apt install ncdu

Затем запустите программу:

После завершения анализа вы можете увидеть какие файлы занимают больше всего пространства на жестком диске. Вы внезапно можете обнаружить, что много места занимают логи или ненужные файлы в домашней папке. Вы можете открывать папки клавишей Enter, перемещаться по ним с помощью стрелок вверх и вниз, а также прямо здесь удалять ненужные файлы с помощью кнопки Delete. Более подробно про утилиты для анализа занимаемого пространства читайте в отдельной статье.

2. Дубликаты файлов

Со временем могло накопиться несколько копий одного файла в системе. Если нужна очистка памяти в Ubuntu, то такие файлы важно найти и удалить, прежде чем они заполнят весь жесткий диск.

Для решения этой задачи есть несколько утилит. Утилита FSlint позволяет найти и очистить битые символические ссылки, а также дубликаты файлов в файловой системе.

Для установки программы используйте команду:

sudo apt install fslint

Запустить программу можно из главного меню. В главном окне нужно указать путь, по которому следует искать дубликаты файлов с помощью кнопки Add, затем перейти на вкладку Дубликаты и нажать в самом низу Найти:

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

Еще одним отличным решением для поиска дублей есть утилита BleachBit, кроме поиска дубликатов файлов, здесь есть специальные приложения для нахождения дублей фото и аудиофайлов по специальным алгоритмам. Подробнее о работе с программой я писал в отдельной статье — как освободить место в Linux.

3. Очистка пакетов

Пакеты программного обеспечения одно из самых слабых мест для засорения системы. Если вы устанавливали много приложений, скорее всего, они потянули за собой большое количество зависимостей, которые после удаления этих приложений не представляют никакой пользы. Поэтому очистка Ubuntu обязательно должна включать удаление ненужных пакетов. Вот несколько команд выполняющих очистку системы:

Читайте также:  Daemon tools lite для windows 10 ключик активации

Удалить неиспользуемые пакеты из кэша

sudo apt autoclean

Очистка кэша в Ubuntu, утилиты apt:

Удаление ненужных зависимостей:

sudo apt autoremove

Вообще хорошей практикой будет удалять зависимости сразу при удалении приложения:

sudo apt autoremove приложение

4. Старые версии snap пакетов

В новых версиях Ubuntu используется пакетный менеджер snap, он тоже оставляет в системе кэш, а также старые версии пакетов после обновления. Эти версии уже не используются но всё ещё занимают место. По умолчанию, это три, это значение можно изменить на две с помощью такой команды:

sudo snap set system refresh.retain=2

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

sudo vi /usr/local/bin/remove_old_snaps.sh

#!/bin/bash
set -eu
LANG=en_US.UTF-8 snap list —all | awk ‘/disabled/‘ |
while read snapname revision; do
snap remove «$snapname» —revision=»$revision»
done

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

sudo chmod ugo+x /usr/local/bin/remove_old_snaps.sh

5. Старые пакеты программ

При обновлении пакета до более новой версии, его старая версия и её конфигурационные файлы тоже остаются в системе и занимают место на диске. Вы можете освободить немного пространства, удалив такие пакеты.

Откройте менеджер пакетов Synaptec, нажмите кнопку Состояние, затем откройте пункт Не установленные (остались файлы конфигурации). Здесь и будут те пакеты, которые, остались в системе после обновления или неполного удаления.

Поставьте галочки напротив всех таких пакетов, и выберите опцию Отметить для полного удаления. Затем нажмите Правка -> Применить для применения действия.

Аналогичное действие можно выполнить в терминале. Для этого используйте команду:

dpkg -l | awk ‘/^rc/ ‘ | xargs sudo dpkg —purge

Можно воспользоваться и командой попроще если у вас установлен aptitude:

sudo aptitude purge

6. Неиспользуемые пакеты

Мы часто устанавливаем различные пакеты, и не все из них нам нужны долгое время. Бывает, что пакет нужен определенному приложению, но после удаления приложения он больше не используется. Или вы установили программу, попользовались ею пару раз, а потом забыли о ее существовании. Такие приложения тоже нужно найти и ликвидировать чтобы очистка ubuntu от мусора была выполнена полностью.

Для этого будет очень полезной программа GTKOrphan. Для ее установки выполните:

sudo apt install gtkorphan

Как обычно, открыть программу вы можете из главного меню.

Она проанализирует систему и покажет все пакеты, которые не находятся ни у кого в зависимостях. То есть те, которые вы устанавливали сами. Теперь вы можете посмотреть какие из них вам не нужны и спокойно их удалить. Не удаляйте все пакеты бездумно, это может сломать вашу систему. Чтобы отобразить больше пакетов кликните по пункту Параметры и выберите Показывать пакеты не только из библиотеки.

7. Файлы локализации

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

Установите утилиту localepurege:

sudo apt install localepurge

На этапе установки пакета выберите те локали, которые вам нужны, все остальные будут удалены. По умолчанию выбраны en_US и ru_RU для кодировки UTF-8, вы можете выбрать и другие.

8. Никому не принадлежащие файлы

При неправильной установке программ из исходников в системе могут накопляться файлы, не принадлежащие ни одному пакету, после удаления этих программ они могут просто оставаться в системе. Также такие файлы накапливаются при установке программ из бинарных файлов или создаются вами вручную. Одним словом, такие файлы нужно удалять. Для этого будем использовать программу cruft. Для установки выполните:

sudo apt install cruft

Для запуска программы просто выполните её с опцией -r и путём к файлу, куда надо сохранить отчёт:

sudo cruft -r cruftreport

Затем просто откройте полученный файл в с помощью less или cat:

Читайте также:  Softether ��� mac os

Программа выдаст список всех никому не принадлежащих файлов. Теперь вы можете просмотреть и удалить те, которые считаете ненужными. Только будьте очень аккуратны, чтобы не удалить ничего лишнего. Не забудьте что такие файлы могут создаваться и обычными программами, например, Grub и SSL.

9. Старые ядра

После обновления ядра, особенно в старых версиях Ubuntu старые ядра всё ещё остаются и занимают место в папке /boot. Чтобы из удалить можно использовать утилиту Ubuntu Cleaner. Для её установки выполните:

sudo apt install ubuntu-cleaner

Откройте программу из главного меню или через терминал, затем отметьте пункт Old Kernel. В правой части окна появится список пакетов ядер, которые можно удалить:

Отметьте нужные и нажмите кнопку Clean. Другие способы удалить старые ядра описаны в отдельной статье.

Выводы

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

Источник

Как освободить память Linux

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

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

Как освободить кэш память в Linux

В каждом дистрибутиве Linux можно использовать три команды чтобы очистить кэш памяти linux. Причем вам не придется завершать никаких процессов. Сначала войдите в консоль от имени суперпользователя:

Затем выполните одну из команд. Очистка кэша PageCache:

sync; echo 1 > /proc/sys/vm/drop_caches

Очистка inode и dentrie:

sync; echo 2 > /proc/sys/vm/drop_caches

Очистка inode и dentrie и PageCache:

sync; echo 3 > /proc/sys/vm/drop_caches

А теперь давайте рассмотрим что происходит при выполнении этих команд.

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

Если не выполнить команду sync мы тоже освободим немного места, но после ее выполнения результат будет лучше.

Символ разделения ; дает знать оболочке, что перед тем как выполнить другую команду, нужно дождаться завершения работы первой. Последняя команда echo 1 > /proc/sys/vm/drop_caches записывает значение 1 в файл /proc/sys/vm/drop_caches. Это дает сигнал ядру, что нужно очистить выбранный нами вид кэша.

Виды кэша в Linux

А теперь давайте рассмотрим виды кэша, которые позволяют очищать эти команды, а также как все это работает.

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

Посмотреть размер страничного кэша можно с помощью утилиты free. Здесь он показан в последней колонке — cached:

Такой кэш чистить эффективнее и безопаснее всего.

Кэш inode и dentrie тоже относится к файловой системе. Только в него записываются не сами данные, а структура файловой системы, расположение файлов и папок. При запросе расположения файла или содержимого папки ядро формирует специальные структуры, в которых есть вся эта информация. При следующем запросе структуры будут уже сохранены в памяти. Для каждой файловой системы существует свой кэш inode и общий кэш dentrie.

Читайте также:  Код 80073712 произошла неизвестная ошибка windows update как исправить

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

cat /proc/slabinfo | egrep dentry\|inode

Очищать его чтобы освободить память linux не рекомендуется, так как памяти потребляется немного, а на новое сканирование файловой системы идет относительно много времени.

Нужно ли очищать кэш вообще?

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

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

Автоматическая очистка кэша

Давайте рассмотрим как автоматически очистить кэш памяти ежедневно в два часа ночи с помощью планировщика заданий cron.

Сначала создадим bash скрипт со следующим содержимым:

sudo vi /usr/local/bin/clearcache.sh

!/bin/bash
sync ; echo 1 > /proc/sys/vm/drop_caches

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

Дальше сделайте скрипт исполняемым:

sudo chmod 755 /usr/local/bin/clearcache.sh

Осталось добавить задание в планировщик cron. Для этого выполните команду:

И в открывшемся редакторе добавьте строчку:

0 2 * * * /usr/local/bin/clearcache.sh

Теперь этот скрипт будет выполняться каждую ночь и выполнять очистку памяти, чтобы сервер мог работать нормально.

Настройка размера кэша памяти

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

За это отвечает файл /proc/sys/vm/vfs_cache_pressure. Он содержит относительный показатель, насколько агрессивно нужно удалять страницы из кэша. По умолчанию установлен параметр 100. Если его уменьшить ядро будет реже удалять страницы и это приведет к очень быстрому увеличению кэша. При нуле страницы вообще не будут удаляться. Если значение больше 100, размер кэша будет увеличиваться медленнее и неиспользуемые страницы будут сразу удаляться.

Например, сделаем минимальный размер кэша:

echo 1000 > /proc/sys/vm/vfs_cache_pressure

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

Как очистить память подкачки

Пространство подкачки очистить очень просто. Для этого выполните:

swapoff -a && swapon -a

Имейте в виду, что при очистке swap, все данные будут перенесены обратно в оперативную память.

Как освободить память занимаемую процессами

Если в вашей системе нет памяти и кэш здесь ни при чём, следует завершить несколько процессов, потребляющих больше всего памяти. Для этого сначала надо вычислить такие процессы. Чтобы это сделать можно воспользоваться утилитой ps:

ps -e -o pid,user,%mem,command —sort %mem

Как видите, больше всего здесь памяти занимает chromium. Теперь вам надо его завершить. Идентификатор процесса, по которому его можно завершить отображается в первой колонке. Поэтому:

Более подробно о том как завершить процесс читайте в этой статье. Таким образом, вы можете освободить память от процессов, которые занимают больше всего памяти, а потом уже настроить zram или swap для того, чтобы память не переполнялась.

Выводы

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

Источник

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