Einführung
Ist der Speicherplatz auf Ihrem Ubuntu-Server knapp?
Möchten Sie aufräumen und Platz schaffen? Dann sind Sie hier genau richtig.
Viele Entwickler stehen vor dem gleichen Problem wie Sie: Sie haben ein oder zwei kleine Anwendungen auf ihrem Ubuntu-Server bereitgestellt, aber mit der Zeit füllt sich der Speicherplatz und sie sind ratlos, was sie tun sollen und wie sie ihren Speicherplatz wieder freigeben können.
Ich war vor Kurzem in einer ähnlichen Situation. Mein Ubuntu-Server war zu 93 % ausgelastet, und eine kleine Django-Anwendung, die darauf lief, benötigte etwa 39 GB Speicherplatz. Mir war klar, dass zusätzlicher Speicherplatz nicht in Frage kam, da die Anwendungsdateien selbst weniger als 1 GB groß waren.
Letztendlich musste ich einen ganzen Tag damit verbringen, den gesamten Server durchzugehen und herauszufinden, welche Verzeichnisse und Programme meinen Speicherplatz belegten.
In diesem Artikel beschreibe ich meine bewährten Schritte, um unnötige Dateien zu finden und Speicherplatz auf einem Ubuntu-Server freizugeben.
Voraussetzungen
- Server mit Ubuntu (z.B. mit Hetzner Cloud)
- SSH-Zugriff auf den Server
- Zugriff auf den Root-Benutzer oder einen Benutzer mit sudo-Berechtigungen
Beispielbegriffe
- Benutzername: holu (dein Serverbenutzername)
- Hostname:
So bereinigen Sie die Festplatte eines Ubuntu-Servers
Der größte Speicherplatzfresser sind in der Regel die Protokolldateien. Das Ubuntu-Betriebssystem protokolliert nahezu alles, und viele Entwickler- und Server-Tools und -Frameworks wie Celery und Nginx erstellen und speichern ebenfalls Protokolle auf dem Server.
Diese Berichte, die von verschiedenen Tools und Paketen generiert werden, sind in der Regel viele Gigabyte groß, verbrauchen viel Speicherplatz und verlangsamen Ihren Server.
Bevor wir zu den praktischen Schritten kommen, möchte ich darauf hinweisen, dass Sie den Systemprotokollordner im Stammverzeichnis nicht löschen sollten. Lassen Sie sich niemals dazu verleiten, einfach den Stammprotokollordner (/var/log/) zu löschen. Dadurch beschädigen Sie viele Systeme, die Sie unbedingt erhalten möchten.
Schritt 1 – Festplattenspeicher prüfen
Der erste Schritt besteht darin, über SSH auf den Ubuntu-Server zuzugreifen. Sie können sich mit folgendem Befehl anmelden:
Holu mit deinem Benutzernamen und Ersetzen Sie dies durch Ihre Server-IP-Adresse.
ssh holu@<your_host>
Nach dem Einloggen können Sie mit folgendem Befehl Ihre Festplattennutzung anzeigen lassen.
sudo du -cha --max-depth=1 / | grep -E "M|G"
Beispielausgabe:
holu@<your_host>:~$ sudo du -cha --max-depth=1 / | grep -E "M|G"
2.8G /root
5.4G /usr
53M /tmp
9.8M /etc
203M /boot
du: cannot access '/proc/100209/task/100209/fd/4': No such file or directory
du: cannot access '/proc/100209/task/100209/fdinfo/4': No such file or directory
du: cannot access '/proc/100209/fd/3': No such file or directory
du: cannot access '/proc/100209/fdinfo/3': No such file or directory
2.5G /home
1.1M /run
307M /opt
522M /logs
11G /var
1.3G /snap
24G /
24G totalWie Sie sehen können, zeigt uns dieser Befehl detaillierte Informationen über die Größe verschiedener Ordner/Verzeichnisse auf der Festplatte an.
Wenn man sich die obige Beispielausgabe ansieht, erkennt man, dass die größten Speichernutzer /root, /usr, /home und /var sind. Allein das Verzeichnis /var belegt 11 GB, was eine beträchtliche Menge Speicherplatz ist.
Schritt 2 – Wechseln Sie in das Verzeichnis „var“.
Der nächste Schritt besteht darin, mit folgendem Befehl in den Ordner /var zu wechseln.
cd /var
Führen Sie anschließend den folgenden Befehl aus, um die Speicherplatznutzung aller Ordner im Verzeichnis /var anzuzeigen. Dies hilft uns dabei, die Ordner zu identifizieren, mit denen wir unsere Aufräumarbeiten beginnen sollten.
sudo du -bsh *
Beispielausgabe:
holu@<your_host>:/var$ sudo du -bsh *
2.7M backups
150M cache
4.0K crash
3.6G lib
4.0K local
9 lock
2.5G log
3.0G mail
4.0K opt
4 run
53K snap
52K spool
44K tmp
460M wwwWenn ich diesen Befehl auf meinem Server ausführe, sehe ich, dass die Verzeichnisse lib und log den größten Speicherplatz im Ordner /var belegen.
Mit diesen Informationen kann ich mich sowohl auf das lib-Verzeichnis als auch auf das log-Verzeichnis konzentrieren, um Speicherplatz auf meiner Festplatte freizugeben.
Schritt 3 – Gehen Sie zu jedem Verzeichnis und löschen Sie es.
Als Nächstes müssen diese Verzeichnisse aufgeräumt werden. In diesem Artikel konzentriere ich mich nur auf das Log-Verzeichnis, aber Sie können die hier beschriebenen Schritte auch auf jedes andere Verzeichnis Ihres Ubuntu-Servers anwenden.
Um das Protokollverzeichnis zu leeren, müssen wir die alte Protokolldatei und andere unnötige Dateien auf dem Server löschen. Um auf das Protokollverzeichnis zuzugreifen, führen Sie folgenden Befehl aus.
cd log
Dann tun Sie Folgendes:
lsBeispielausgabe:
holu@<your_host>:/var$ cd log
holu@<your_host>:/var/log$ ls
alternatives.log fail2ban.log php7.4-fpm.log.5.gz
alternatives.log.1 fail2ban.log.1 php7.4-fpm.log.6.gz
alternatives.log.2.gz fail2ban.log.2.gz php7.4-fpm.log.7.gz
alternatives.log.3.gz fail2ban.log.3.gz php7.4-fpm.log.8.gz
alternatives.log.4.gz fail2ban.log.4.gz php7.4-fpm.log.9.gz
alternatives.log.5.gz faillog postgresql
alternatives.log.6.gz fontconfig.log private
apport.log installer supervisor
apport.log.1 journal syslog
apport.log.2.gz kern.log syslog.1
apport.log.3.gz kern.log.1 syslog.2.gz
apport.log.4.gz kern.log.2.gz syslog.3.gz
apport.log.5.gz kern.log.3.gz syslog.4.gz
apport.log.6.gz kern.log.4.gz syslog.5.gz
apport.log.7.gz landscape syslog.6.gz
apt lastlog Der Befehl ls zeigt uns alle Dateien in diesem Verzeichnis an, und wie Sie sehen können, befinden sich in diesem Verzeichnis viele archivierte Protokolldateien.
Überprüfen Sie anschließend die Größe aller Dateien und Ordner in diesem Verzeichnis mit dem folgenden Befehl.
sudo du -bsh *
Dies ist derselbe Befehl wie oben, daher sollte eine Liste aller Dateien und ihrer Größen angezeigt werden. Notieren Sie sich den Ordner „journal“.
Schritt 4 – Alte Protokolldateien löschen
Als Nächstes löschen wir alle alten Protokolldateien. Alte Protokolldateien sind leicht zu erkennen, da sie üblicherweise die Dateinamenserweiterung .gz haben.
Wir werden einen Befehl verwenden, um alle .gz-Dateien zu finden und sie von unserem Server zu löschen.
Führen Sie den folgenden Befehl aus, um alle .gz- und .log.1-Dateien im Log-Verzeichnis zu finden und zu löschen.
sudo find -type f \( -name "*.log.1" -o -name '*.gz' \) -delete
Tu es jetzt:
lsSie sollten ein gelöschtes Protokollverzeichnis sehen. Sie können diesen Befehl auch anpassen, um verschiedene Dateitypen zu löschen, indem Sie den Wert des Attributs „-name“ ändern.
Wir sind noch nicht fertig, da das Journalverzeichnis viel Speicherplatz belegt. Daher müssen wir dieses Verzeichnis überprüfen und einige Dateien löschen.
cd journal
Im Verzeichnis „journal“ befindet sich ein Ordner, dessen Name üblicherweise aus einer Zahlenfolge besteht. Um ihn zu löschen, kann folgender Befehl verwendet werden.
Dieser Befehl reduziert die Größe des Journalverzeichnisses auf 100 MB, was eine angemessene Größe ist.
sudo journalctl --vacuum-size=100M
Wenn Sie eine dauerhafte Lösung für die Verwendung einer Journaldiskette wünschen, befolgen Sie die unten beschriebenen Schritte.
sudo nano /etc/systemd/journald.confEntfernen Sie in der Konfigurationsdatei die Einstellungen „SystemMaxFileSize“ und „SystemMaxFiles“ (entfernen Sie „#“) und setzen Sie sie auf 100. Das Ergebnis sollte dann Folgendes sein:
SystemMaxFileSize=100
SystemMaxFiles=100Als Nächstes tun Sie Folgendes:
sudo service systemd-journald restart
Dadurch werden die Änderungen angewendet und die zusätzlichen Protokolleinträge entfernt.
Schritt 5 – Überprüfen Sie den Ordner /var/lib
Meiner Erfahrung nach ist das Verzeichnis /var/lib ein weiterer großer Speicherplatzfresser. Je nachdem, wie viele Bibliotheken oder Tools auf Ihrem Ubuntu-Server installiert sind, kann dieses Verzeichnis viel Speicherplatz belegen.
Eine schnelle Möglichkeit, herauszufinden, welche Bibliotheken viel Speicherplatz belegen, besteht darin, den folgenden Befehl auszuführen.
sudo du -hs /var/lib/* | sort -hr | head -10
Dieser Befehl zeigt Ihnen die 10 größten Bibliotheksordner in diesem Verzeichnis an. Sie können diese Informationen dann verwenden, um Ihren Aufräumprozess fortzusetzen.
Sie sollten alle Bibliotheken oder Tools, die Sie aktuell nicht verwenden, vollständig entfernen.
Abschluss
Wie Sie sehen, ist das Aufräumen Ihres Ubuntu-Servers gar nicht so schwer. Mit den oben genannten Schritten haben wir unser Verzeichnis `/var/log/` erfolgreich aufgeräumt. Führen Sie dieselben Schritte aus, um auch andere Verzeichnisse im Ordner `/var` zu bereinigen und so viel Speicherplatz auf Ihrem Ubuntu-Server freizugeben.









