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


181

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

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


1
Попробуйте это тоже: dpkg -l | grep ^ rc | cut -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf

Если вы используете докер: docs.docker.com/config/pruning
Джерард Карбо

для многих случаев:sudo docker container prune -f && sudo docker image prune -f
smftr

Ответы:


104
sudo apt-get autoremove

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


не повлияет ли это на работающие приложения, например, удалит ли он необходимый пакет, от которого зависит какое-либо приложение?
user3215 11.10.10

1
Нет. Autoremove ищет потерянные пакеты, то есть пакеты, которые вы не установили самостоятельно (помеченные как auto) и которые не имеют зависимостей. Если вы используете aptitudeвместо этого apt-get, он может очищаться на ходу, но более старые установки часто собирают множество установленных ядер по мере выхода обновлений безопасности.
Оли

1
Опечатка в моем последнем комментарии. Я хотел сказать, что потерянные пакеты - это пакеты, от которых не зависит, а не те, которые «не имеют зависимостей». У них вполне могут быть зависимости, и если они были там только для этого потерянного пакета, они тоже будут удалены. Иногда (с очень глубокими деревьями зависимостей) может потребоваться очистка пары автоматических удалений.
Оли

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

1
@nyarlathotep Это будет удалить заголовок файлы ядра, которые на первый взгляд может сделать один думаю , что удаление старых ядер - старые ядра остаются, однако (попробуйте dpkg --get-selections | grep linux-image).
drevicko

211

Для удаления загруженных пакетов (.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: Командос у programas (actualización) ( Google переведено )


1
Бег cleanосвободил довольно много места. Сразу после этого я побежал, autocleanи мое свободное место сократилось на 45 МБ. Запуск cleanснова освободил это дополнительное пространство.
Дрю Ноакс

8
Я удалил все образы Linux, перечисленные в результате dpkg --get-selections | grep linux-imageчего я вызвал ошибку при загрузке - ubuntu исчез из меню загрузки grub - этот ответ устранил проблему - попробуйте не удалять последний образ
laplasz

Что именно мы делаем, когда удаляем образы Linux?
Менелаос Бакопулос

4
Хорошо, на это уже отвечали 100 раз (и в этой теме также), но я нахожу действительно странным, что за него проголосовали 160 раз, потому что: sudo apt-get clean он просто упростит удаление всех локальных копий пакетов, которые могут у вас быть загружается при выполнении установки + обновление. Это почти очистит каталог / var / cache / apt / archives. ... Так что в следующий раз, когда вы запустите, sudo apt-get updateон все заново загрузит (уже там). Просто хедз-ап! .. :)
Ностромов

168
  • показать топ 10 самых больших подкаталогов в текущем каталоге.

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

  • проверьте, есть ли у вас старые ядра для удаления

    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
    
  • проверить содержимое / var / tmp /

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

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

    find / -type f -size +1024k
    

    или же

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

    dpigs
    

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


4
Чтобы найти большие файлы, я предлагаю ncdu, что обеспечивает быстрый способ увидеть, какие каталоги используют ваше дисковое пространство
rubo77

1
kDirStatзаменяется наbaobab
rubo77

17

Я только что освободил почти 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!


Это немного о подстановочных знаках? Прежде чем использовать это, я бы перепроверил это, потому что я попробовал это, и я получил больше, чем я хотел. Возможно (возможно, даже вероятно), что я каким-то образом запутался, но я не знаю как, и все же я потерял больше заголовков, чем хотел.
глаукон

Подстановочные знаки являются подстановочными знаками регулярных выражений, а не глобусами.
Чай Т. Рекс,

13

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

введите описание изображения здесь


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

rm -r ~/.local/share/Trash/info/ && rm -r ~/.local/share/Trash/files/  

11

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

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

sudo apt-get install bleachbit


11

Удалите большие пакеты, которые вы не используете

Некоторые пакеты могут быть довольно большими. Удобный способ найти это использовать dpigs. Он не установлен по умолчанию, но может быть найден в debian-goodies( проект GitHub )

sudo apt-get install debian-goodies

Затем:

$ dpigs
419576 texlive-latex-extra-doc
204112 nvidia-319
175463 google-chrome-stable
141058 linux-image-extra-3.11.0-15-generic
113173 libreoffice-core
104822 valgrind
102322 qt4-doc
93337 blender
91105 texlive-pstricks-doc
90517 libboost1.53-dev

Есть несколько вариантов:

-n, --lines=N
  Display the N largest packages on the system (default 10).
-s, --status=status-file
  Use status-file instead of the default dpkg status file.
-S, --source
  Display the largest source packages of binary packages installed
  on the system.
-H, --human-readable
  Display package sizes in human-readable format (like ls -lh or du -h)
-h, --help
  Display this message.

10

Удалить все старые версии ядра автоматически

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

Не забудьте проверить, какое ядро ​​вы используете тип:

uname -r

Тогда как корень:

sudo apt-get remove --purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')

Прочитайте эту ветку, чтобы быть уверенным, чтобы не удалить необходимые ядра с помощью этой команды!


8

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

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

sudo apt-get clean

Где я могу найти файлы журнала UfW?
Любопытный ученик

8

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


3
Обратите внимание, что вопрос конкретно касается серверных инструментов, а это программа для настольных компьютеров (требуется отображение X).
Ryre

Лучший инструмент до сих пор!
Роджер

8

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

sudo du -h /var/log

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

sudo ncdu /var/log

удобная команда, которая указывает размер файла, а не «количество файлов журнала»
dogmatic69

или используйтеsudo ncdu /var/log
rubo77

@ rubo77, спасибо, это действительно хороший инструмент!
Дрю Ноакс

4

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


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

sudo apt-get install fslint

в терминале.

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

Установите fslint через центр программного обеспечения


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

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

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


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

sudo apt-get install bleachbit

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

Установите bleachbit через центр программного обеспечения

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


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

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 

или используя Центр программного обеспечения Установите git-core через центр программного обеспечения

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

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, но не для ваших собственных файлов.


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


Ух ты, удаление старых версий linux-header и linux-image высвободило примерно полтора гига на моей установке 10.04. fslint - отличная находка. Благодарю.
Брэддок

Вместо баобаба вы также можете использовать инструмент командной строки ncdu для поиска больших папок и файлов:sudo apt-get install ncdu
rubo77

4

более чистый сценарий

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

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

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

#!/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
  echo -e $YELLOW"Purge package $PKGNAME"
  apt-cache show "$PKGNAME"|grep Description: -A3
  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

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

sudo apt-get install localepurge

удалить старые снимки

LANG=c snap list --all | awk '/disabled/{print $1, $3}' | \
    while read snapname revision; do \
        snap remove "$snapname" --revision="$revision"; \
    done

BleachBit

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

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/*

В зависимости от вашего случая, вы можете найти еще несколько вариантов в этом скрипте: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
rubo77

Я получил предупреждение при выполнении этого скрипта, что собирался удалить ядро ​​с тем же номером версии, что и у меня.
Кристоф Де Тройер

проверьте текущее ядро, которое вы используете uname -a. В случае, если вы только что выполнили apt-get ugrade и получили новое ядро, это может быть причиной того, что текущий используемый вами kurnel не самый новый, который установлен? Сделайте перезагрузку, прежде чем запускать этот скрипт
rubo77

Скрипт
minimal.sh

3

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

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


Спасибо!. Как вы сказали, у меня есть место в мегабайтах в / var / cache, и я задаюсь вопросом, как удалить ненужные файлы.
user3215 11.10.10

2

Используйте убунту-твик для очистки.

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


не работает с KDE
rubo77

1

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

sudo service rsyslog restart

0

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

find / -size +50M -type f -exec du -h {} \; | sort -n

1
Вы бы лучше пыль при помощи ncdu /вместо
rubo77

1
Учитывая du -h, использовать sort -hтакже.
Муру

-3
uname -r 

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

apt-get remove linux-image 3.0.* 

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


3
Понижено, потому что с такими командами, если вы не будете осторожны, вы можете удалить последнее ядро ​​(или даже все ядра).
ndemou
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.