Jak zwolnić miejsce na dysku?


181

Mój serwer chmurowy Ubuntu zostawił tylko 900 MB miejsca na dysku.

Po prostu opróżnię katalog / tmp i zastanawiam się, czy jest jakieś inne miejsce do wyczyszczenia.


1
Wypróbuj też: dpkg -l | grep ^ rc | cut -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf

Jeśli używasz dokera
Gerard Carbó,

w wielu przypadkach:sudo docker container prune -f && sudo docker image prune -f
smftr

Odpowiedzi:


104
sudo apt-get autoremove

To może wyczyścić wiele guff (stare jądra itp.), Które zostały zastąpione. Możesz zrobić coś podobnego w Synaptic (załaduj go i wybierz przycisk stanu, a następnie opcję automatycznego usuwania).


czy nie wpłynie to na działanie aplikacji, np. jeśli usunie niezbędny pakiet, od którego zależy każda aplikacja ?.
user3215,

1
Nie. Autoremove szuka osieroconych pakietów, to znaczy pakietów, które nie zostały jawnie zainstalowane (te oznaczone automatycznie) i które nie są zależne. Jeśli użyjesz aptitudezamiast tego apt-get, może on posprzątać po drodze, ale starsze instalacje często gromadzą mnóstwo zainstalowanych jąder, gdy pojawią się aktualizacje zabezpieczeń.
Oli

1
Literówka w moim ostatnim komentarzu. Chciałem powiedzieć, że osierocone pakiety to te, na których nie ma zależności, a nie te, które „nie mają zależności”. Mogą mieć zależności i jeśli byłyby tam tylko dla tego osieroconego pakietu, one również zostaną usunięte. Czasami (z naprawdę głębokimi drzewami zależności) może to zająć kilku autorów.
Oli

5
Chociaż powyższe polecenie jest z pewnością przydatne, to będzie nie , jak stwierdzono, usuwania starych jąder. Należy to zrobić ręcznie lub za pomocą dodatkowych narzędzi, takich jak Ubuntu Tweak.
kodowanie

1
@nyarlathotep To będzie usunąć pliki nagłówkowe jądra, które na pierwszy rzut oka może się wydawać, czynią to usunięcie starych jąder - stare jądra pozostają jednak (spróbuj dpkg --get-selections | grep linux-image).
drevicko,

211

Aby usunąć pobrane pakiety (.deb), które zostały już zainstalowane (i nie są już potrzebne)

sudo apt-get clean

Aby usunąć wszystkie przechowywane archiwa w pamięci podręcznej dla pakietów, których nie można już pobrać (a więc pakietów, których już nie ma w repozytorium lub które mają nowszą wersję w repozytorium).

sudo apt-get autoclean

Aby usunąć niepotrzebne pakiety (po odinstalowaniu aplikacji mogą istnieć pakiety, których już nie potrzebujesz)

sudo apt-get autoremove

Aby usunąć stare wersje jądra

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

Jeśli nie wiesz, którą wersję jądra usunąć

dpkg --get-selections | grep linux-image

Źródło: Limpiando Ubuntu: comandos y programas (aktualización) ( przetłumaczone przez Google )


1
Bieganie cleanzwolniło sporo miejsca. Natychmiast potem pobiegłem autocleani moje wolne miejsce spadło o 45 MB. cleanPonowne uruchomienie zwolniło tę dodatkową przestrzeń.
Drew Noakes,

8
Usunąłem wszystkie wymienione obrazy linuksa, przez dpkg --get-selections | grep linux-imageco spowodowałem błąd rozruchu - ubuntu zniknęło z menu rozruchowego gruba - ta odpowiedź rozwiązała problem - spróbuj nie usunąć najnowszego obrazu
laplasz

Co dokładnie robimy, gdy usuwamy obrazy linuksowe?
Menelaos Bakopoulos

4
Ok, to już odpowiedział 100 razy (i również w tym wątku), ale uważam, że to bardzo dziwne, aby być upvoted 160 razy, ponieważ: sudo apt-get clean Będzie -simply- usunąć pakietów wszystkie lokalne kopie pakietów, które mogą mieć pobrane podczas instalacji + aktualizacji. To prawie opróżni katalog / var / cache / apt / archives. ... Więc następnym uruchomieniu sudo apt-get updatego będzie ponownie pobrać wszystko (już nie istnieje). Tylko heads-up! .. :)
Nostromov

168
  • pokaż 10 największych podkatalogów w bieżącym reż.

    du -sk * | sort -nr | head -10
    
  • użyj filelight lub kDirStat, aby zobaczyć, dokąd zmierza miejsce na dysku

  • sprawdź, czy masz stare jądra do usunięcia

    ls -lh /boot
    
  • czyszczenie paczek

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    zobacz listę wszystkich zainstalowanych pakietów, posortowaną według rozmiaru. Jeśli zobaczysz coś dużego i nie używaj go - odinstaluj go

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • wyczyść nieużywane pliki językowe z tłumaczeniami (jest ich mnóstwo)

    sudo apt-get install localepurge
    
  • sprawdź zawartość / var / tmp /

    du -sh /var/tmp/
    
  • sprawdź także

    man deborphan
    
  • Szukaj dużych plików:

    find / -type f -size +1024k
    

    lub

    find / -size +50000  -exec ls -lahg {} \;
    
  • duże zainstalowane pakiety

    dpigs
    

jest to część pakietu: debian-goodies


4
Aby znaleźć duże pliki, sugeruję ncdu, który zapewnia szybki sposób sprawdzenia, jakie katalogi wykorzystują miejsce na dysku
rubo77

1
kDirStatzastępuje siębaobab
rubo77

17

Właśnie uwolniłem prawie 2 koncerty, usuwając stare jądra i pliki nagłówkowe:

posługiwać się

uname -r

a następnie sprawdź swoją bieżącą wersję

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

aby zobaczyć wszystkie stare jądra i pliki nagłówków

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

apt-get removekomenda obsługuje symboli wieloznacznych, więc można zrobić, apt-get remove linux-image 3.0.* linux-headers-3.0.*na przykład, aby pozbyć się wielu naraz.

Oczywiście upewnij się, że nie zabijesz, usuń obecne jądro! I może zachowaj jedną lub dwie starsze wersje, na wszelki wypadek ... ale nie 10 lub 20!


To trochę o symbolach wieloznacznych? Przed skorzystaniem z niego sprawdziłbym to dwukrotnie, ponieważ spróbowałem i dostałem więcej niż chciałem. Możliwe (może nawet prawdopodobne), że w jakiś sposób się upchnąłem, ale nie wiem jak, a jednak straciłem więcej nagłówków, niż chciałem.
glaucon

Symbole wieloznaczne są raczej symbolami regularnymi, a nie globami.
Chai T. Rex

13

Nie zapomnij opróżnić kosza.

wprowadź opis zdjęcia tutaj


Lub z wiersza poleceń:

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

11

Naprawdę polecam ci program BleachBit, który czyści wszystko na Ubuntu.

Zainstaluj go za pomocą następującego polecenia:

sudo apt-get install bleachbit


11

Odinstaluj duże pakiety, których nie używasz

Niektóre paczki mogą być dość duże. Wygodnym sposobem ich znalezienia jest użycie dpigs. Nie jest domyślnie instalowany, ale można go znaleźć w debian-goodies( projekt GitHub )

sudo apt-get install debian-goodies

Następnie:

$ 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

Istnieje kilka opcji:

-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

Automatyczne usuwanie wszystkich starych wersji jądra

Uwaga: Jeśli właśnie zaktualizowałeś jądro, uruchom ponownie przed usunięciem starszych wersji!

Pamiętaj, aby sprawdzić, którego jądra używasz:

uname -r

Następnie jako root:

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

przeczytaj ten wątek, aby być bezpiecznym i nie usuwać niezbędnych jąder za pomocą tego polecenia!


8

Jeśli używasz UFW, sprawdź folder dziennika. Na jednym z moich komputerów UFW generował 8 Gb dzienników w ciągu kilku dni.

Możesz również opróżnić apt cache za pomocą:

sudo apt-get clean

Czy mogę znaleźć pliki dziennika UfW?
Ciekawy uczeń

8

Spróbuj użyć BleachBit ( znajduje się w sourceforge ). To świetny program. podstawową ideą jest to, że szybko zwalnia miejsce na dysku i usuwa wiele śmieci ukrytych w systemie. Istnieje około 70 aplikacji, które można rozpoznać i wyczyścić. Istnieje również możliwość użycia go do „wyczyszczenia” wolnego miejsca na dysku. Myślę o tym jak o CCleaner z Windows tylko dla Linuksa.


3
Zauważ, że pytanie dotyczy w szczególności narzędzi serwerowych i jest to program komputerowy (wymaga wyświetlania X).
Ryre,

Najlepsze narzędzie do tej pory!
Roger,

8

Sprawdź też dużą liczbę plików dziennika:

sudo du -h /var/log

Lub, jak zaznacza rubo77 w poleceniach, możesz użyć narzędzia do użycia dysku NCurses:

sudo ncdu /var/log

przydatne polecenie, które wyświetla rozmiar pliku, a nie „liczbę plików dziennika”
dogmatic69,

lub użyjsudo ncdu /var/log
rubo77

@ rubo77, dzięki, to naprawdę miłe narzędzie!
Drew Noakes,

4

Po pierwsze, istnieje narzędzie do wyświetlania listy wszystkich dużych folderów i plików. Po prostu wpisz „Baobab” w programie uruchamiającym. Usuwając niepotrzebne foldery i pliki, zyskujesz więcej miejsca.


Następnie jest program do usuwania podwójnych plików. Program nazywa się fslint. Zainstaluj go, wprowadzając

sudo apt-get install fslint

w terminalu.

lub graficznie

Zainstaluj fslint za pośrednictwem centrum oprogramowania


Możesz również wyczyścić pamięć podręczną pakietów za pomocą

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

Czwarty krok polega na usunięciu starych wpisów jądra. Możesz to zrobić, instalując i otwierając Synaptic. W Synaptic wyszukaj stare wpisy jądra (każdy wpis jądra wyświetlany w GRUB-ie, oprócz najnowszych) i usuń go.


Jednym dobrym krokiem jest usunięcie pamięci podręcznej aplikacji. Zrób to, instalując i uruchamiając bleachbit:

sudo apt-get install bleachbit

lub graficznie

Zainstaluj bleachbit za pośrednictwem centrum oprogramowania

Ważne: Usuniętej pamięci podręcznej nie można przywrócić!


Ostatnim krokiem jest defragmentacja systemu plików. Wykonaj następujące czynności:

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

Za pomocą tych poleceń pobierasz i kompilujesz e2fsprogs. (Jeśli Ty lub społeczność masz lepszy sposób na zainstalowanie programu, edytuj!)

Upewnij się także, że git-corejest zainstalowany. Jeśli nie, wykonaj:

sudo apt-get install git-core 

lub za pomocą Centrum oprogramowania Zainstaluj git-core za pośrednictwem centrum oprogramowania

Teraz możesz uruchomić program za pomocą:

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

Zamień / dev / sda1 na żądany system plików lub folder / plik. Pamiętaj, że do defragmentacji urządzenia (takiego jak dysk twardy) potrzebujesz uprawnień roota, ale nie własnych plików.


Źródło (niemiecki): tutaj


Wow, usunięcie starych wersji nagłówka linux i obrazu linux uwolniło mnie o około półtorej mili podczas mojej instalacji 10.04. Fslint to również świetne znalezisko. Dzięki.
braddock

Zamiast baobabu możesz również użyć narzędzia wiersza poleceń ncdu, aby znaleźć duże foldery i pliki:sudo apt-get install ncdu
rubo77

4

czystszy skrypt

Ten skrypt wykona największe porcje na konsoli:

  • Wyczyść apt cache
  • Usuń pozostawione pliki konfiguracyjne z odinstalowanych pakietów .deb (dzieje się tak, jeśli nie używasz --purgeprzełącznika z apt-get)
  • Usuń każde jądro z wyjątkiem tego, którego używasz
  • Opróżnij śmieci każdego użytkownika (w tym root)

utwórz plik z tą zawartością i nadaj mu prawa do wykonywania:

#!/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

Na podstawie 71529-ubucleaner.sh


znajdź duże foldery i paczki

Niektóre narzędzia, które pomogą Ci znaleźć duże foldery i pakiety:

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

Użyj narzędzia localepurge, aby odinstalować nieużywane języki w systemie:

sudo apt-get install localepurge

usuń stare obrazy snapd

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

wybielacz

Świetne narzędzie graficzne GUI spełniające wszystkie potrzeby:

sudo apt-get install bleachbit

usuń strony i dokumentację

Dodatkowo możesz usunąć strony podręcznika i dokumentację zgodnie z opisem na Wiki Ubuntu :

Utwórz plik /etc/dpkg/dpkg.cfg.d/01_nodoc, który określa pożądane filtry. Przykład:

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

Usuń ten sam zestaw plików i katalogów z postinst projektu-config. Przykład:

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

W zależności od przypadku możesz znaleźć więcej opcji w tym skrypcie: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
rubo77

Otrzymałem ostrzeżenie podczas wykonywania tego skryptu, że miałem usunąć jądro o tym samym numerze wersji, co uruchomiony.
Christophe De Troyer

sprawdź bieżące jądro, którego używasz uname -a. Jeśli przed chwilą zrobiłeś apt-get przed aktualizacją i otrzymałeś nowe jądro, może to być przyczyną, że bieżący program, którego używasz, nie jest zainstalowany. Wykonaj ponowny rozruch przed uruchomieniem tego skryptu
rubo77


3

Katalog „/ tmp” nigdy nie powinien być czyszczony ręcznie, chyba że jest to absolutnie konieczne (tj .: zamknięta aplikacja nie wyczyściła się po sobie).

Możesz wyszukać, gdzie może zapełnić się miejsce, używając polecenia „du”; zazwyczaj interesujące miejsca znajdują się w „/ var”. Aby wymienić dwóch typowych podejrzanych: „/ var / log” i „/ var / cache”. Chociaż miałem kilku użytkowników, którzy instalują narzędzie do tworzenia kopii zapasowych i nigdy nie zdają sobie sprawy, że tworzy ono GB przyrostowych kopii zapasowych w „/ var / backup”, które gromadzą się przez tydzień lub miesiąc, aby wypełnić całe miejsce na dysku.


Dziękuję Ci!. Jak powiedziałeś, mam trochę miejsca w MB w / var / cache i zastanawiam się, jak usunąć niepotrzebne pliki.
user3215,


1

Jeśli już usunąłeś dużo śmieci, ale przestrzeń dyskowa nie wydaje się oczyszczona, po prostu uruchom ponownie Ubuntu. Lub jeśli nie chcesz restartować, po prostu uruchom polecenie jak w podobnym pytaniu .

sudo service rsyslog restart

0

Kiedy potrzebuję zrobić więcej wolnego miejsca na serwerach, używam tego polecenia. Znajduje wszystkie pliki większe niż 50 MB i „du -h” tworzy lepszą listę plików, a „sort -n” po potoku tworzy listę numerycznie posortowaną według rozmiaru pliku.

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

1
Byłbyś lepiej kurz używając ncdu /zamiast
rubo77

1
Biorąc pod uwagę du -h, użyj sort -hrównież.
muru

-3
uname -r 

(do zobaczenia)

apt-get remove linux-image 3.0.* 

(twoje starsze wersje). Dało mi to 600 MB wolnego miejsca.


3
Odebrano, ponieważ za pomocą takich poleceń, jeśli nie jesteś ostrożny, możesz usunąć najnowsze jądro (lub nawet wszystkie jądra).
ndemou
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.