Wie kann ich Speicherplatz aus einem massiven 39,5 GB / var / log / -Ordner freigeben?

46

Ich habe gerade eine Meldung von der Standard-Disk-Analyse-Software (Baobab) erhalten, dass ich nur noch 1 GB auf der Festplatte habe. Nach einiger Suche stellte ich fest, dass der /var/log/Ordner die Ursache dafür ist.

Einige Dateien / Größen in /var/log/:

  • kern.log = 12,6 GB
  • ufw.log = 12,5 GB
  • kern.log.1 = 6,1 GB
  • ufw.log.1 = 6.0 GB

Et cetera et cetera. /var/logist riesig.

Kann ich diese Dateien oder den gesamten /var/logOrdner löschen ? Oder ist das ein GROSSES NEIN NEIN in Ubuntu?

blade19899
quelle

Antworten:

39

Sie müssen nicht den gesamten Ordner entfernen, aber Sie können "Alt gepackte" Protokolldateien entfernen, ohne Ihr System zu beschädigen.

Für einen typischen Heimanwender ist es sicher, alle komprimierten Protokolldateien mit der Erweiterung .gz zu entfernen (siehe Abbildung).

Diese komprimierten Protokolldateien sind alte Protokolle, die komprimiert werden, um Speicherplatz zu sparen. Als durchschnittlicher Benutzer benötigen Sie sie nicht.

Wählen Sie die Erweiterung .gz

Salih Emin
quelle
7
find / var / log -type f -name "* .gz" -exec rm -f {} \;
Diyismus
@diyism Ich habe versucht, Ihren Code, aber nicht viel Hilfe. Mein Log-Verzeichnis belegt immer noch 6 GB Speicherplatz @ _ @
GusDeCooL
1
find /var/log -type f -name "*.gz" -deleteIch habe die komprimierten Dateien entfernt und nur etwa 1 GB Speicherplatz freigegeben. Reichen nicht 50 GB für das /Verzeichnis und den Rest meiner Festplatte für /home!
Muhammad Gelbana
Der PC meiner Mutter hatte eine kern.log- Datei mit einer Größe von 21 GB. Ein großes kern.log weist auf ein Problem im Linux-Kernel selbst oder auf ein Problem hin, mit dem er zu tun hat. In beiden Fällen wird empfohlen, zum Linux-Shell-Terminal zu gehen und cat /var/log/kern.logoder nano /var/log/kern.log(auf der GUI etwas wie zB gedit /var/log/kern.logoder mousepad /var/log/kern.log) auszuführen und zu überprüfen, was das Problem sein könnte. Sobald Sie herausgefunden haben, was nicht stimmt, können Sie diese sudo rm /var/log/kern.log ; sudo telinit 6(große) Datei löschen und das Betriebssystem neu starten.
Yuri Sucupira
In meinem Fall werden dadurch nur 15,7 MB von 41 Dateien entfernt. Die eigentlichen Probleme sind hier messages(7,7 GB), user.log(7,7 GB), syslog(4,1 GB) und syslog.1(3,5 GB). Diese vier Dateien summieren sich auf 23 GB. Wie können sie entfernt oder zumindest verkleinert werden?
Rodrigo
32

Ich würde nicht den gesamten Ordner / var / log löschen - das würde alles kaputt machen.

Sie könnten die Protokolle einfach zerstören, wie @jrg vorschlägt - aber es sei denn, die in die Protokolldateien (meistens syslogd) geschriebenen Daten werden neu gestartet, wodurch Sie tatsächlich keinen Speicherplatz mehr erhalten, da die Dateien in einem gelöschten Zustand bleiben, bis zum Dateihandles sind geschlossen.

Besser wäre es herauszufinden, warum die Protokolle nicht gedreht (und später gelöscht) werden. logrotate soll dies für Sie tun, und ich vermute, es wird nicht jede Nacht so ausgeführt, wie es sollte.

Das erste, was ich tun würde, wäre:

sudo /etc/cron.daily/logrotate

Dadurch sollten die Protokolldateien gedreht werden (aus kern.log wird kern.log.1). Anschließend können Sie kern.log.1 usw. löschen, um Speicherplatz freizugeben.

Wenn bis jetzt alles in Ordnung ist, lautet die nächste Frage, warum dies nicht automatisch geschieht. Wenn Sie Ihren Computer nachts ausschalten, vergewissern Sie sich, dass anacron installiert ist.

richvdh
quelle
17

Sie sollten sich die Protokolle ansehen und sehen, was auf sie geschrieben wird. Ich vermute, ufw / iptables (Sie protokollieren den gesamten Netzwerkverkehr).

ufw - Wenn Sie alle Pakete protokollieren, erhalten Sie große Protokolle. Wenn Sie die Protokolle nicht überprüfen möchten, deaktivieren Sie die Protokollierung. Wenn Sie Ihr Netzwerk überwachen möchten, verwenden Sie snort. Snort filtert die Tausende von Paketen, die Sie erhalten, und weist Sie auf potenziell problematischen Datenverkehr hin.

Ich vermute, dass ufw der Schuldige ist und Sie ein großes Protokoll in kern.log erhalten, weil Sie dort auch Pakete protokollieren.

Manchmal liegt ein Kernel- oder Hardwareproblem vor, das die Protokolle ausfüllt. In diesem Fall ist es am besten, das Problem zu beheben oder einen Fehler zu melden. Überprüfen Sie dazu die Protokolle.

Wenn Sie das Problem nicht beheben können, können Sie syslog so konfigurieren, dass Ihre Protokolle nicht gefüllt werden.

Siehe http://manpages.ubuntu.com/manpages/precise/man5/syslog.conf.5.html

Wenn Sie weitere Details zu dem Problem angeben, können wir Sie beim Debuggen unterstützen.

Panther
quelle
2
Das ist ein sehr guter Punkt. Es lohnt sich herauszufinden, was die Protokolle verstopft, anstatt sie nur zu löschen. +1.
Richvdh
6

Das Löschen /var/logist wahrscheinlich eine schlechte Idee, aber das Löschen der einzelnen Protokolldateien sollte in Ordnung sein.

Auf meinem Laptop habe ich mit einer kleinen SSD-Festplatte /var/log(und /tmpund /var/tmp) als tmpfsEinhängepunkte eingerichtet, indem ich die folgenden Zeilen hinzufügte /etc/fstab:

temp        /tmp        tmpfs   rw,mode=1777    0   0
vartmp      /var/tmp    tmpfs   rw,mode=1777    0   0
varlog      /var/log    tmpfs   rw,mode=1777    0   0

Dies bedeutet, dass nichts in diesen Verzeichnissen einen Neustart übersteht. Soweit ich das beurteilen kann, funktioniert dieses Setup einwandfrei. Natürlich verliere ich die Fähigkeit, alte Protokolle zu durchsuchen, um eventuell auftretende Probleme zu diagnostizieren, aber ich halte dies für einen fairen Kompromiss für die reduzierte Festplattennutzung.

Das einzige Problem, das ich hatte, ist, dass einige Programme (insbesondere APT) ihre Protokolle in Unterverzeichnisse von schreiben möchten /var/logund nicht intelligent genug sind, um diese Verzeichnisse zu erstellen, wenn sie nicht existieren. Das Hinzufügen der Zeile mkdir /var/log/aptin hat /etc/rc.localdieses spezielle Problem für mich behoben. Abhängig davon, welche Software Sie installiert haben, müssen Sie möglicherweise auch einige andere Verzeichnisse erstellen.

(Eine andere Möglichkeit wäre, ein einfaches tarArchiv zu erstellen, das nur die Verzeichnisse enthält, und es /var/logbeim Start zu entpacken , um alle erforderlichen Verzeichnisse zu erstellen und ihre Berechtigungen gleichzeitig festzulegen .)

Ilmari Karonen
quelle
1
ufw war das Problem, anscheinend habe ich die Protokollierung auf FULL gesetzt, damit alles protokolliert wird. danke für die
hilfe