Wie mache ich Speicherplatz frei?

181

Mein Ubuntu-Cloud-Server hat nur noch 900 MB Festplattenspeicher.

Ich werde einfach das Verzeichnis / tmp leeren und mich fragen, ob es noch einen anderen Ort zum Aufräumen gibt.

user3215
quelle
1
Probieren Sie auch dieses aus: dpkg -l | grep ^ rc | schneide -d '' -f3 | xargs sudo apt-get purge -y
crsuarezf
Wenn Sie Docker verwenden: docs.docker.com/config/pruning
Gerard Carbó
in vielen sudo docker container prune -f && sudo docker image prune -f
fällen

Antworten:

104
sudo apt-get autoremove

Dadurch können viele ausgetauschte Guff (alte Kernel usw.) entfernt werden. Ähnliches können Sie in Synaptic tun (laden Sie es und klicken Sie auf die Statusschaltfläche und dann auf die Option Automatisch entfernbar).

Oli
quelle
Beeinträchtigt es nicht die Ausführung von Anwendungen, wenn ein notwendiges Paket entfernt wird, von dem eine Anwendung abhängt?
User3215
1
Nein. Autoremove sucht nach verwaisten Paketen, d. H. Paketen, die Sie nicht explizit selbst installiert haben (solche, die als automatisch markiert sind) und die keine Abhängigkeiten aufweisen. Wenn Sie aptitudeanstelle von verwenden apt-get, kann es bereinigt werden, aber es ist durchaus üblich, dass ältere Installationen eine Reihe installierter Kernel sammeln, wenn Sicherheitsupdates veröffentlicht werden.
Oli
1
Tippfehler in meinem letzten Kommentar. Ich wollte damit sagen, dass verwaiste Pakete solche sind, von denen keine Abhängigkeiten bestehen. Sie können Abhängigkeiten haben und wenn sie nur für dieses verwaiste Paket da wären, werden sie auch entfernt. Manchmal (bei sehr tiefen Abhängigkeitsbäumen) kann es einige automatische Entfernungen dauern, bis die Daten bereinigt sind.
Oli
5
Obwohl der obige Befehl sicherlich nützlich ist, werden alte Kernel nicht wie angegeben entfernt. Dies muss entweder manuell oder mit zusätzlichen Tools wie Ubuntu Tweak erfolgen.
Kodierung
1
@nyarlathotep Es wird Kernel - Header - Dateien zu entfernen, die auf den ersten Blick kann man es das Entfernen der alten Kernel denken - die alten Kerne bleiben jedoch (versuchen dpkg --get-selections | grep linux-image).
Drevicko
211

So löschen Sie heruntergeladene Pakete (.deb), die bereits installiert sind (und nicht mehr benötigt werden)

sudo apt-get clean

Entfernen aller in Ihrem Cache gespeicherten Archive für Pakete, die nicht mehr heruntergeladen werden können (also Pakete, die sich nicht mehr im Repository befinden oder eine neuere Version im Repository haben).

sudo apt-get autoclean

So entfernen Sie nicht benötigte Pakete (Nach der Deinstallation einer App gibt es möglicherweise Pakete, die Sie nicht mehr benötigen.)

sudo apt-get autoremove

Alte Kernelversionen löschen

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

Wenn Sie nicht wissen, welche Kernelversion entfernt werden soll

dpkg --get-selections | grep linux-image

Quelle: Limpiando Ubuntu: comandos y programas (actualización) ( Google Translate )

DrKenobi
quelle
1
Laufen hat cleanviel Platz frei gemacht. Unmittelbar danach lief ich autocleanund mein freier Raum ging nach unten von 45 MB. Laufen cleanwieder diesen zusätzlichen Platz freigegeben.
Drew Noakes
8
Ich habe alle aufgelisteten Linux-Images entfernt, die dpkg --get-selections | grep linux-imageeinen Boot-Fehler verursacht haben - das Ubuntu ist aus dem Grub-Boot-Menü verschwunden - diese Antwort hat das Problem behoben - versuche nicht, das neueste Image zu entfernen
laplasz
Was genau machen wir, wenn wir die Linux-Images entfernen?
Menelaos Bakopoulos
4
Ok, das wurde bereits 100 Mal beantwortet (& auch in diesem Thread), aber ich finde es wirklich seltsam, 160 Mal hochgestuft zu werden, weil: sudo apt-get clean Es wird -einfach- alle lokalen Kopien der Pakete entfernen, die Sie möglicherweise haben wird bei der Installation + Aktualisierung heruntergeladen. Dadurch wird das Verzeichnis / var / cache / apt / archives fast leer. ... Wenn Sie sudo apt-get updatees das nächste Mal ausführen , wird alles erneut heruntergeladen (bereits vorhanden). Nur ein Heads-up! .. :)
Nostromov
168
  • zeige die Top 10 der größten Subdirs im aktuellen Verzeichnis.

    du -sk * | sort -nr | head -10
    
  • Verwenden Sie filelight oder kDirStat, um zu sehen, wohin der Speicherplatz optisch verschoben wird

  • Überprüfen Sie, ob Sie alte Kernel zum Löschen haben

    ls -lh /boot
    
  • Reinigungspakete

    sudo apt-get autoremove
    sudo apt-get autoclean
    

    siehe Liste aller installierten Pakete, sortiert nach Größe. Wenn Sie etwas Großes sehen und es nicht verwenden, deinstallieren Sie es

    dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
    
  • unbenutzte Sprachdateien mit Übersetzungen säubern (es gibt Unmengen davon)

    sudo apt-get install localepurge
    
  • Überprüfen Sie den Inhalt von / var / tmp /

    du -sh /var/tmp/
    
  • überprüfe auch

    man deborphan
    
  • Suche nach großen Dateien:

    find / -type f -size +1024k
    

    oder

    find / -size +50000  -exec ls -lahg {} \;
    
  • große installierte Pakete

    dpigs
    

Dies ist Teil des Pakets: Debian-Goodies

Jet
quelle
4
Um große Dateien zu finden, schlage ich vor ncdu, die eine schnelle Möglichkeit bietet, um zu sehen, welche Verzeichnisse Ihren Speicherplatz
belegen
1
kDirStatwird ersetzt durchbaobab
rubo77
17

Ich habe gerade fast 2 Gigs freigesetzt, indem ich alte Kernel und Header-Dateien entfernt habe:

verwenden

uname -r

um dann Ihre aktuelle Version zu überprüfen

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

um dann alle alten Kernel und Header-Dateien zu sehen

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

Der apt-get removeBefehl unterstützt Platzhalter, sodass Sie apt-get remove linux-image 3.0.* linux-headers-3.0.*beispielsweise viele auf einmal entfernen können.

Stellen Sie sicher, dass Sie nicht den aktuellen Kernel entfernen! Und vielleicht behalten Sie ein oder zwei alte Versionen, nur für den Fall ... aber nicht 10 oder 20!

hwjp
quelle
Das bisschen über Wildcards? Bevor ich davon Gebrauch machte, überprüfte ich das noch einmal, weil ich es ausprobierte und mehr bekam, als ich wollte. Es ist möglich (vielleicht sogar wahrscheinlich), dass ich etwas kaputt gemacht habe, aber ich weiß nicht wie und dennoch habe ich mehr Header verloren, als ich wollte.
Glaukon
Bei den Platzhaltern handelt es sich eher um reguläre Platzhalter als um Globs.
Chai T. Rex
13

Vergessen Sie nicht, den Papierkorb zu leeren.

Bildbeschreibung hier eingeben


Oder von der Kommandozeile:

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

Ich kann Ihnen das Programm BleachBit nur empfehlen, das alles auf Ubuntu bereinigt.

Installieren Sie es mit dem folgenden Befehl:

sudo apt-get install bleachbit

Gustavo geht
quelle
11

Deinstallieren Sie große Pakete, die Sie nicht verwenden

Einige Pakete können sehr groß sein. Eine bequeme Möglichkeit, diese zu finden, ist die Verwendung dpigs. Es ist nicht standardmäßig installiert, kann aber in debian-goodies( GitHub-Projekt ) gefunden werden

sudo apt-get install debian-goodies

Dann:

$ 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

Es gibt einige Möglichkeiten:

-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.
Drew Noakes
quelle
10

Entfernen Sie alle alten Kernelversionen automatisch

Achtung: Wenn Sie den Kernel gerade aktualisiert haben, starten Sie ihn neu, bevor Sie die älteren Versionen löschen!

Denken Sie daran, zu überprüfen, welchen Kernel Sie verwenden:

uname -r

Dann als 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')

Lesen Sie diesen Thread , um sicherzugehen, dass Sie die benötigten Kernel nicht mit diesem Befehl entfernen!

rubo77
quelle
8

Wenn Sie UFW verwenden, überprüfen Sie den Protokollordner. Auf einem meiner Computer hat UFW in ein paar Tagen 8 GB Protokolle generiert.

Sie können den apt-Cache auch leeren mit:

sudo apt-get clean
lovinglinux
quelle
Wurden UfW-Protokolldateien gefunden?
Neugieriger Lehrling
8

Versuchen Sie es mit BleachBit ( bei SourceForge ). Es ist ein großartiges Programm. Die Grundidee ist, schnell Speicherplatz freizugeben und viel im System verborgenen Müll zu entfernen. Es gibt ungefähr 70 Anwendungen, die erkannt und gelöscht werden können. Es gibt auch die Möglichkeit, damit den freien Speicherplatz zu "löschen". Ich denke es als CCleaner von Windows nur für Linux.

RunningUtes
quelle
3
Beachten Sie, dass die Frage speziell nach Server-Tools fragt und dies ein Desktop-Programm ist (erfordert X-Anzeige).
Ryre
Bestes Werkzeug bis jetzt!
Roger
8

Suchen Sie auch nach einer großen Anzahl von Protokolldateien:

sudo du -h /var/log

Oder, wie rubo77 in commends betont , können Sie das NCurses-Tool zur Datenträgerverwendung verwenden:

sudo ncdu /var/log
Drew Noakes
quelle
praktischer Befehl, der die Dateigröße und nicht "Anzahl der Protokolldateien" auflistet
dogmatic69
oder verwenden Siesudo ncdu /var/log
rubo77
@ rubo77, danke, das ist ein wirklich schönes Tool!
Drew Noakes
4

Erstens gibt es ein Tool zum Auflisten aller großen Ordner und Dateien. Geben Sie einfach "Baobab" in den Launcher ein. Durch das Entfernen von Ordnern und Dateien, die Sie nicht benötigen, erhalten Sie mehr Speicherplatz.


Dann gibt es ein Programm zum Entfernen doppelter Dateien. Das Programm wird aufgerufen fslint. Installieren Sie es, indem Sie eingeben

sudo apt-get install fslint

in einem Terminal.

oder grafisch

Installieren Sie fslint über das Software Center


Sie können den Paket-Cache auch mit löschen

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

Der vierte Schritt besteht darin, alte Kernel-Einträge zu entfernen. Sie können dies tun, indem Sie Synaptic installieren und öffnen. Suchen Sie in Synaptic nach den alten Kernel-Einträgen (alle Kernel-Einträge, die in GRUB angezeigt werden, mit Ausnahme des neuesten) und entfernen Sie sie.


Ein guter Schritt ist das Entfernen des Anwendungscaches. Führen Sie dazu die folgenden Schritte aus bleachbit:

sudo apt-get install bleachbit

oder grafisch

Installieren Sie bleachbit über das Software Center

Wichtig: Gelöschter Cache kann nicht wiederhergestellt werden!


Der letzte Schritt ist die Defragmentierung des Dateisystems. Tun Sie dazu Folgendes:

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

Mit diesen Befehlen können Sie e2fsprogs herunterladen und kompilieren. (Wenn Sie oder die Community eine bessere Möglichkeit haben, das Programm zu installieren, bearbeiten Sie es bitte!)

Stellen Sie außerdem sicher, dass git-coreinstalliert ist. Wenn nicht, führen Sie aus:

sudo apt-get install git-core 

oder über das Software Center Installieren Sie Git-Core über das Software-Center

Jetzt können Sie das Programm ausführen mit:

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

Ersetzen Sie / dev / sda1 durch das gewünschte Dateisystem oder den gewünschten Ordner / die gewünschte Datei. Beachten Sie, dass Sie zum Defragmentieren eines Geräts (z. B. einer Festplatte) Root-Berechtigungen benötigen, nicht jedoch für Ihre eigenen Dateien.


Quelle: hier

Schrägstrich
quelle
Wow, das Löschen von alten Linux-Header- und Linux-Image-Versionen hat bei meiner 10.04-Installation ungefähr eineinhalb Gig gekostet. Fslint ist auch eine tolle Entdeckung. Vielen Dank.
Braddock
Anstelle von Baobab können Sie auch das Kommandozeilen-Tool ncdu verwenden, um große Ordner und Dateien zu finden:sudo apt-get install ncdu
rubo77
4

saubereres Skript

Dieses Skript führt die größten Blöcke auf der Konsole aus:

  • Bereinigen Sie den Apt Cache
  • Konfigurationsdateien von deinstallierten .deb-Paketen entfernen (passiert, wenn Sie den --purgeSchalter nicht mit verwenden apt-get)
  • Entfernen Sie jeden Kernel mit Ausnahme des von Ihnen verwendeten
  • Leere die Mülleimer aller Benutzer (einschließlich root)

erstelle eine Datei mit diesem Inhalt und gib ihr ausführbare Rechte:

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

Angepasst von 71529-ubucleaner.sh


finden Sie große Ordner und Pakete

Einige Tools, mit denen Sie große Ordner und Pakete finden können:

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

Verwenden Sie localepurge, um nicht verwendete Sprachen in Ihrem System zu deinstallieren:

sudo apt-get install localepurge

Entfernen Sie alte Snapd-Bilder

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

Bleichbit

Ein großartiges grafisches GUI-Tool für alle Anforderungen:

sudo apt-get install bleachbit

Hilfeseiten und Dokumentation entfernen

Zusätzlich können Sie Hilfeseiten und Dokumentationen entfernen, wie im Ubuntu-Wiki beschrieben :

Erstellen Sie eine Datei /etc/dpkg/dpkg.cfg.d/01_nodoc, in der die gewünschten Filter angegeben sind. Beispiel:

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

Entfernen Sie den gleichen Satz von Dateien und Verzeichnissen in der Postinst der Projektkonfiguration. Beispiel:

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/*
rubo77
quelle
Abhängig von Ihrem Fall finden Sie weitere Optionen in diesem Skript: github.com/box-cutter/debian-vm/blob/master/script/minimize.sh
rubo77
Beim Ausführen dieses Skripts wurde eine Warnung angezeigt, dass ich einen Kernel mit der Versionsnummer entfernen wollte, die ich ausgeführt habe.
Christophe De Troyer
Überprüfen Sie den aktuellen Kernel, mit dem Sie arbeiten uname -a. Falls Sie gerade einen apt-get-ugrade durchgeführt haben und einen neuen Kernel erhalten haben, könnte dies die Ursache sein, dass der aktuell verwendete Kurnel nicht der neueste ist, der installiert ist? Führen Sie dann einen Neu-Start durch, bevor Sie dieses Skript
starten
Das Skript minimieren.sh wurde verschoben: github.com/boxcutter/debian/blob/master/script/minimize.sh
rubo77
3

Das '/ tmp'-Verzeichnis sollte niemals manuell bereinigt werden, es sei denn, dies ist absolut notwendig (dh eine geschlossene Anwendung hat nicht nach sich selbst bereinigt).

Mit dem Befehl 'du' können Sie suchen, wo der Speicherplatz möglicherweise voll ist. In der Regel befinden sich interessante Orte innerhalb von '/ var'. Um zwei übliche Verdächtige zu nennen: "/ var / log" und "/ var / cache". Obwohl ich einige Benutzer hatte, die ein Sicherungsdienstprogramm installierten und nie bemerkten, dass es inkrementelle GBs in '/ var / backup' erstellt, die sich über eine Woche oder einen Monat aufbauen, um den gesamten Festplattenspeicher zu füllen.

ibuclaw
quelle
Danke!. Wie Sie sagten, habe ich unter / var / cache etwas Speicherplatz in MB belegt und frage mich, wie ich nicht benötigte Dateien entfernen kann.
User3215
2

Verwenden Sie ubuntu-zwicken zu reinigen.

Es werden alle * .deb-Dateien gelöscht, die in Installations-Apps heruntergeladen wurden.

mwm
quelle
nicht mit KDE arbeiten
rubo77
1

Wenn Sie bereits viel Junk gelöscht haben, aber der Speicherplatz nicht gereinigt zu sein scheint, starten Sie Ubuntu neu. Oder wenn Sie nicht neu starten möchten, führen Sie den Befehl wie in einer ähnlichen Frage aus .

sudo service rsyslog restart
Maxim Yefremov
quelle
0

Wenn ich mehr freien Speicherplatz auf Servern schaffen muss, verwende ich diesen Befehl. Alle Dateien, die größer als 50 MB sind, und "du -h" machen eine bessere Liste der Dateien und "sort -n" nach der Pipe machen Liste numerisch sortiert nach Dateigröße.

find / -size +50M -type f -exec du -h {} \; | sort -n
zorbon.cz
quelle
1
Verwenden Sie ncdu /stattdessen besser Staub
rubo77
1
Gegeben du -h, auch verwenden sort -h.
muru
-3
uname -r 

(um deins zu sehen)

apt-get remove linux-image 3.0.* 

(Ihre älteren Versionen). Es gab mir 600 MB freien Speicherplatz.

adi kwok
quelle
3
Abgestimmt, weil Sie mit Befehlen wie diesem, wenn Sie nicht vorsichtig sind, den neuesten Kernel (oder sogar alle Kernel) entfernen können.
ndemou