Ich konnte in Google keinen sicheren Weg finden, um systemd journal zu löschen. Kennt jemand einen sicheren und zuverlässigen Weg, dies zu tun?
Nehmen wir an, ich habe mit etwas experimentiert und meine Protokolle sind mit verschiedenen Fehlermeldungen überfüllt. Außerdem zeige ich mein Tagebuch mit Conky auf meinem Desktop an. Ich möchte diese Fehler wirklich nicht sehen, da sie mich an einen schrecklichen Tag erinnern, an dem ich dieses Zeug repariert habe. Ich möchte mich nach diesem Horror wie ein frischer Mann fühlen. Ich denke, jeder wird zustimmen, dass dies ein triftiger Grund ist, die Protokolle zu löschen: P.
quelle
journalctl --vacuum-size=1K
dannjournalctl
zeigt noch viel mehr als 1K. Es werden alle Meldungen seit dem letzten Start angezeigt.journalctl --flush --rotate
vorher versucht zu rennenjournalctl --vacuum-time=1s
und es wurden mehr Sachen entfernt, obwohl immer noch nicht alles.Normalerweise löschen Sie das Tagebuch nicht selbst. Dies wird von systemd selbst verwaltet und alte Protokolle werden beim Eintreffen neuer Daten ausgelagert. Das Richtige ist, Journald so zu planen, dass nur so viele Daten gespeichert werden, wie Sie interessiert sind. Am häufigsten wird die gesamte Festplatte angepasst Raum, den es einnehmen darf. Sobald es diese Grenze überschreitet, beginnt es alte Einträge zu werfen, um in der Nähe dieses Wertes zu bleiben.
Sie können dies folgendermaßen einstellen
/etc/systemd/journald.conf
:quelle
MaxRetentionSec
anstelle von festlegenSystemMaxUse
. Sehen Sieman journald.conf
für weitere Details.Michaels Antwort fehlt eines: Beim Staubsaugen werden nur archivierte, nicht aktive Journaldateien entfernt. Um alles loszuwerden, müssen Sie zuerst die Dateien drehen, damit die zuletzt verwendeten Einträge in inaktive Dateien verschoben werden.
Die vollständige Antwort zum Entfernen aller Einträge scheint also zu sein
(Beachten Sie, dass Sie dies nicht zu einem
journalctl
Befehl kombinieren können .)Übrigens haben einige Distributionen Journald so konfiguriert, dass es Protokolle auf die Festplatte schreibt (
/var/log/journal
), während andere Protokolle im Speicher behalten (/run/log/journal
). Ich gehe davon aus, dass es in einigen Fällen notwendig sein kann,journalctl --flush
zuerst zu verwenden, um alles zu entfernen.Wenn Sie nicht
--rotate
in Ihrer Version haben, können Sie das--since
Argument verwenden, um Einträge zu filtern:quelle
Auf Arch Linux war der nächste, den ich bekam:
sudo systemctl restart systemd-journald
Auf meinem System hat jede Journaldatei eine Größe von 8 MB, und die oben genannten Dateien haben alle bis auf 3 gelöscht, wodurch sich die Gesamtgröße auf ~ 25 MB erhöht.
Mein Anwendungsfall wurde das Deaktivieren CoW für BTRFS (nur für die Zeitschrift Verzeichnis und das Unter):
sudo chattr +C /var/log/journal/*
. Das Problem ist, dass das Attribut nur für neu erstellte Dateien festgelegt wird und daher das Journal geleert werden soll.quelle
SystemMaxUse=1K
, neu gestartetsystemd-journald
, aber journalctl zeigt noch Einträge, die ich gehen möchte. Wie ist dieser Fortschritt von flachen Textdateien?Da
--vacuum-time
und--vacuum-size
nichts für mich zu tun hat habe ich die folgenden:Es ist nicht richtig, aber es hat funktioniert.
quelle
/run/log
.Eine sehr brachiale Methode, um das gesamte Protokoll zu bereinigen:
Sie können auch
--vacuum-size
als Michael Mento verwendet werden.quelle
systemctl restart systemd-journald
.Sowohl --rotate als auch --vacuum-time = 1s haben bei mir unter CentOS nicht funktioniert. Ich konnte es so klären:
quelle
./journal
. Diejournalctl
Befehle funktionieren nur in der neuesten Version. Also musste ich das alte Verzeichnis manuell löschen und das ist sicher. Nachdem ich gerade die Größe in der Zeitschrift conf begrenzt habe.Sichern Sie es für den Fall, dass Sie es in Zukunft benötigen:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Löschen Sie die Datei:
cd /run/log/journal/<temp-string>/
>system.journal
Überprüfen Sie, um die neuesten Protokolle anzuzeigen:
journalctl -xe
quelle
journalctl -b
wird nur ab dem letzten Start angezeigt. Sie können auch verwenden-b -1
,-b -2
usw. Ihr schrecklicher Tag ist immer noch da, aber Sie müssen ihn nicht sehen, es sei denn, Sie müssen.quelle
Meine vorherige Antwort wurde gerade gelöscht, weil sie "dupliziert" wurde. Tut mir leid, dass ich in meiner vorherigen Antwort nicht klar genug war, aber es war ein Unterschied zu den vorhandenen Antworten. Also hier ist eine ausgearbeitete Version:
journalctl -m --vacuum-time=1s
hat den Trick für mich getan. Bitte beachten Sie die-m
Flagge , sie führt alle Ihre Journale zusammen und räumt sie dann auf. Ohne die-m
Flagge hat es in meinem Fall nichts aufgeräumt (unter CentOS-7).Ich hoffe es hilft.
quelle