Как освободить место на диске?

Мой облачный сервер Ubuntu оставил только 900 МБ дискового пространства.

Я просто опустошу каталог / tmp и буду интересоваться, есть ли другое место для очистки.

181
задан 15.05.2020, 07:12

17 ответов

sudo apt-get autoremove

Это может убрать много болтовни (старые ядра и т. Д.), Которые были заменены. Вы можете сделать то же самое в Synaptic (загрузить его и выбрать кнопку состояния, а затем параметр «Автоудаление»).

102
ответ дан 15.05.2020, 07:22
  • 1
    Опечатка в моем последнем комментарии. Я имел в виду, что осиротевшие пакеты - это пакеты, от которых не зависит, а не те, которые "не имеют зависимостей". У них вполне могут быть зависимости, и если они были там только для этого потерянного пакета, они тоже будут удалены. Иногда (с очень глубокими деревьями зависимостей) может потребоваться очистка пары автоматических удалений. – Morgan Cheng 15.05.2020, 07:22
  • 2
    Хотя приведенная выше команда, безусловно, полезна, она не , как указано, удаляет старые ядра. Это должно быть сделано вручную или с помощью дополнительных инструментов, таких как Ubuntu Tweak. – Jon Skeet 15.05.2020, 07:23
  • 3
    Нет. Autoremove ищет потерянные пакеты, то есть пакеты, которые вы не установили самостоятельно (помеченные как auto) и которые не имеют зависимостей. Если вы используете aptitude вместо apt-get, он может очищаться по ходу работы, но для более старых установок довольно часто собирать множество установленных ядер по мере выхода обновлений безопасности. – Jon Skeet 15.05.2020, 07:23
  • 4
    @nyarlathotep удалит файлы заголовков ядра, что на первый взгляд может показаться, что удаляются старые ядра - однако старые ядра остаются (попробуйте dpkg --get-selections | grep linux-image). – Mark 15.05.2020, 07:23
  • 5
    не повлияет ли это на работающие приложения, например, удалит ли он необходимый пакет, от которого зависит какое-либо приложение? – Daniel May 15.05.2020, 07:23

Проверьте также наличие большого количества файлов журнала:

sudo du -h /var/log

Или, как rubo77 указывает в комментариях, вы можете использовать инструмент использования диска NCurses:

sudo ncdu /var/log
7
ответ дан 15.05.2020, 07:13
  • 1
    или используйте sudo ncdu /var/log – Riduidel 15.05.2020, 07:13
  • 2
    @ rubo77, спасибо, это действительно хороший инструмент! – Sz. 15.05.2020, 07:14
  • 3
    удобная команда, которая отображает размер файла, а не «количество файлов журнала» – Akshayraj Kore 15.05.2020, 07:14

Не забудьте очистить корзину.

enter image description here

<час>

Или из командной строки:

rm -r ~/.local/share/Trash/info/ && rm -r ~/.local/share/Trash/files/  
13
ответ дан 15.05.2020, 07:14

Если вы используете UFW, проверьте папку журнала. На одной из моих машин UFW генерировал 8 Гб бревен за пару дней.

Вы также можете очистить кэш apt с помощью:

sudo apt-get clean
8
ответ дан 15.05.2020, 07:14
  • 1
    Где я могу найти файлы журнала UfW? – Tony Delroy 15.05.2020, 07:15
  • 2
    Спасибо!. Я мог бы освободить место с помощью команды, которую вы предложили. – Andrie 15.05.2020, 07:15

Попробуйте использовать BleachBit (, расположенный в sourceforge ). Это отличная программа. Основная идея заключается в том, что он быстро освобождает дисковое пространство и удаляет много мусора, скрытого в системе. Есть около 70 приложений, которые он может распознать и стереть. Также есть возможность использовать его, чтобы «стереть» свободное место на диске. Я думаю об этом как CCleaner из Windows только для Linux.

8
ответ дан 15.05.2020, 07:15
  • 1
    Обратите внимание, что вопрос конкретно касается серверных инструментов, а это программа для настольных компьютеров (требуется отображение X). – rosu alin 15.05.2020, 07:15
  • 2
    Лучший инструмент до сих пор! – Ryan Newsom 15.05.2020, 07:16

Я действительно рекомендую вам программу BleachBit, которая очищает все в Ubuntu.

Установите его с помощью следующей команды:

sudo apt-get install bleachbit

11
ответ дан 15.05.2020, 07:15

Когда мне нужно освободить больше места на серверах, я использую эту команду. Он находит все файлы размером более 50 МБ и «du -h» составляет лучший список файлов, а «sort -n» после нумерации списка составляется по размеру файла.

find / -size +50M -type f -exec du -h {} \; | sort -n
0
ответ дан 15.05.2020, 07:16
  • 1
    Учитывая du -h, используйте также sort -h. – Snake 15.05.2020, 07:17
  • 2
    Вы бы лучше от пыли, используя вместо этого ncdu / – Pshemo 15.05.2020, 07:17

Во-первых, есть инструмент для вывода списка всех больших папок и файлов. Просто введите «Баобаб» в лаунчер. Удаляя ненужные папки и файлы, вы получаете больше места.


Затем, есть программа для удаления двойных файлов. Программа называется fslint. Установите его, введя

sudo apt-get install fslint

в Терминале.

или графически

Install fslint via the software center


Кэш пакета также можно очистить с помощью

sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

[ 1122] Четвертый шаг - удалить старые записи ядра. Вы можете сделать это, установив и открыв Synaptic. В Synaptic найдите старые записи ядра (каждую запись ядра, отображаемую в GRUB, кроме самой новой) и удалите ее.


Один хороший шаг - удалить кеш приложения. Сделайте это, установив и запустив bleachbit:

sudo apt-get install bleachbit

или графически

Install bleachbit via the software center

[1125]

Важно: Удаленный кеш не может быть восстановлен!


Последний шаг - дефрагментация файловой системы. Для этого сделайте следующее:

cd $HOME
git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
cd e2fsprogs
./configure
make

С помощью этих команд вы загружаете и компилируете e2fsprogs. (Если у вас или у сообщества есть лучший способ установить программу, отредактируйте!)

Также убедитесь, что установлен git-core. Если нет, выполните:

sudo apt-get install git-core 

или с помощью Центра программного обеспечения Install git-core via the software center

Теперь вы можете запустить программу с:

cd $HOME/e2fsprogs/misc
./e4defrag /dev/sda1    #defragment /dev/sda1
./e4defrag -v /dev/sda1 # verbose output
./e4defrag -c /dev/sda1 # see overview of fragmentation status

Замените / dev / sda1 на нужную вам файловую систему или папку / файл. Обратите внимание, что для дефрагментации устройства (например, жесткого диска) вам нужны привилегии root, но не для ваших собственных файлов.


Источник (немецкий): здесь

4
ответ дан 15.05.2020, 07:16

Я только что освободил почти 2 гигабайта, удалив старые ядра и файлы заголовков:

используйте

uname -r

, чтобы проверить вашу текущую версию, затем

dpkg -l linux-image-* linux-headers-*

чтобы увидеть все старые ядра и файлы заголовков, затем

sudo apt-get remove linux-image-<XYZ> linux-headers-<XYZ>

команда apt-get remove поддерживает подстановочные знаки, так что вы можете сделать apt-get remove linux-image 3.0.* linux-headers-3.0.*, например, чтобы избавиться от многих сразу.

Убедитесь, что вы не убиваете, конечно же, удаляйте текущее ядро! А может, на всякий случай, оставить одну или две старые версии ... но не 10 или 20!

17
ответ дан 15.05.2020, 07:17
  • 1
    Подстановочные знаки являются подстановочными знаками регулярных выражений, а не глобусами. – AnilRedshift 15.05.2020, 07:17
  • 2
    Это немного о подстановочных знаках? Прежде чем использовать это, я бы перепроверил это, потому что я попробовал это, и я получил больше, чем я хотел. Возможно (возможно, даже вероятно), что я каким-то образом запутался, но я не знаю как, и все же я потерял больше заголовков, чем хотел. – Morteza Shahriari Nia 15.05.2020, 07:18

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

sudo service rsyslog restart
1
ответ дан 15.05.2020, 07:18

Каталог '/ tmp' никогда не следует очищать вручную, за исключением случаев, когда это абсолютно необходимо (т. Е. Закрытое приложение не очищало после себя).

Вы можете искать, где место может быть заполнено, используя команду 'du'; обычно интересные места находятся внутри '/ var'. Чтобы назвать двух обычных подозреваемых, «/ var / log» и «/ var / cache». Хотя у меня было несколько пользователей, которые устанавливали утилиту резервного копирования и никогда не понимали, что она создает ГБ инкрементных резервных копий в '/ var / backup', которые накапливаются в течение недели или месяца для заполнения всего дискового пространства.

3
ответ дан 15.05.2020, 07:19
  • 1
    Спасибо!. Как вы сказали, у меня есть место в мегабайтах в / var / cache, и я задаюсь вопросом, как удалить ненужные файлы. – Anderson 15.05.2020, 07:19

Используйте ubuntu-tweak для очистки.

очищает все файлы * .deb, загруженные в установочные приложения.

2
ответ дан 15.05.2020, 07:19

Чтобы удалить загруженные пакеты (.deb), которые уже установлены (и больше не нужны)

sudo apt-get clean

Чтобы удалить все сохраненные архивы в вашем кэше для пакетов, которые больше не могут быть загружены (таким образом, пакеты, которые не являются дольше в хранилище или у которых более новая версия в хранилище).

sudo apt-get autoclean

Чтобы удалить ненужные пакеты (после удаления приложения могут быть пакеты, которые вам больше не нужны)

sudo apt-get autoremove

Для удаления старых версий ядра

sudo apt-get remove --purge linux-image-X.X.XX-XX-generic

Если Вы не знаете, какую версию ядра удалить

dpkg --get-selections | grep linux-image

Источник: Limpiando Ubuntu: команды и программы (actualización) ( Google перевод ])

211
ответ дан 15.05.2020, 07:20
  • показывают топ-10 самых больших подкаталогов в текущем каталоге.

    du -sk * | sort -nr | head -10
    
  • использовать filelight или kDirStat, чтобы увидеть, куда визуально уходит дисковое пространство.

  • проверять наличие старых ядер для удаления [1121 ]

    ls -lh /boot
    
  • пакеты очистки

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    см. Список всех установленных пакетов, отсортированный по размеру. Если вы видите что-то большое и не используете его - удалите его

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • очистите неиспользуемые языковые файлы с переводами (их множество)

    sudo apt-get install localepurge
    
    [1114 ]
  • проверить содержимое / var / tmp /

    du -sh /var/tmp/
    
  • проверить также

    man deborphan
    
  • Поиск больших файлы:

    find / -type f -size +1024k
    

    или

    find / -size +50000  -exec ls -lahg {} \;
    
  • большие установленные пакеты

    dpigs
    

это часть пакет: debian-goodies

168
ответ дан 15.05.2020, 07:20

Автоматическое удаление всех старых версий ядра.

. Внимание: Если вы только что обновили ядро, перезагрузите компьютер перед удалением старых версий! 115] Не забудьте проверить, какое ядро ​​вы используете: ядра с этой командой!

10
ответ дан 15.05.2020, 07:21
uname -r 

(чтобы увидеть ваши)

apt-get remove linux-image 3.0.* 

(ваши старые версии). Это дало мне 600 Мб свободного места.

-3
ответ дан 15.05.2020, 07:22
  • 1
    Понижено, потому что с такими командами, если вы не будете осторожны, вы можете удалить последнее ядро ​​(или даже все ядра). – Lord Zed 15.05.2020, 07:23

Этот скрипт будет выполнять самые большие порции в консоли:

  • Очистить кэш apt
  • Удалить файлы конфигурации, оставленные из неустановленных пакетов .deb (происходит, если вы не используете --purge переключиться с apt-get)
  • Удалить все ядра, кроме того, которое вы используете
  • Очистить корзины каждого пользователя (включая root)

create файл с этим содержимым и предоставьте ему права на выполнение:

#!/bin/bash
# Adapted from 71529-ubucleaner.sh - http://www.opendesktop.org/CONTENT/content-files/71529-ubucleaner.sh

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"; RED="\033[0;31m"; ENDCOLOR="\033[0m"

if [ $USER != root ]; then
  echo -e $RED"Error: must be root! Exiting..."$ENDCOLOR
  exit 0
fi

echo -e $YELLOW"Cleaning apt ..."$ENDCOLOR
aptitude clean
apt-get autoremove
apt-get autoclean

echo -e $YELLOW"Those packages were uninstalled without --purge:"$ENDCOLOR
echo $OLDCONF
#apt-get purge "$OLDCONF"  # fixes the error in the original script
for PKGNAME in $OLDCONF ; do  # a better way to handle errors
  apt-get -y purge "$PKGNAME"
done

echo -e $YELLOW"Removing old kernels..."$ENDCOLOR
echo current kernel you are using:
uname -a
aptitude purge $OLDKERNELS

echo -e $YELLOW"Emptying every trashes..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null

echo -e $YELLOW"Script Finished!"$ENDCOLOR

Адаптировано из 71529-ubucleaner.sh


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

sudo apt-get install ncdu debian-goodies deborphan

sudo ncdu /    # lists all folders by size on the console (like the gui `baobab`)
dpigs -H       # shows large packages that you don't use
man deborphan  # finds packages that have no packages depending on them
deborphan --guess-all --libdevel | xargs apt-get -s purge

Используйте localepurge для удаления неиспользуемых языков в вашей системе:

sudo apt-get install localepurge

Отличный инструмент с графическим интерфейсом для всех потребностей: [1119 ]

sudo apt-get install bleachbit

Кроме того, вы можете удалить man-страницы и документацию, как описано в Ubuntu Wiki :

Создать файл /etc/dpkg/dpkg.cfg.d/ 01_nodoc, который указывает желаемые фильтры. Пример:

path-exclude /usr/share/doc/*
# if we need to keep copyright files for legal reasons:
# path-include /usr/share/doc/*/copyright
path-exclude /usr/share/man/*
path-exclude /usr/share/groff/*
path-exclude /usr/share/info/*
# lintian stuff is small, but really unnecessary
path-exclude /usr/share/lintian/*
path-exclude /usr/share/linda/*

Удалите тот же набор файлов и каталогов в postinst проекта-config. Пример:

echo "Removing documentation..."
# if we need to keep copyright files for legal reasons:
# find /usr/share/doc -depth -type f ! -name copyright | xargs rm || true
# else:
find /usr/share/doc -depth -type f | xargs rm || true
rm -rf /usr/share/man/* /usr/share/groff/* /usr/share/info/* /usr/share/lintian/* /usr/share/linda/* /var/cache/man/*
4
ответ дан 15.05.2020, 07:23