Kann ich alles in löschen /var/log
? Oder soll ich nur Dateien (rekursiv) löschen, /var/log
aber Ordner belassen?
Hat jemand eine gute rm
Kommandozeile? (Meine Admin-Fähigkeiten machen mich nervös.)
Hinweis: Ich benutze Debian. Ich bin nicht sicher, welche Version.
Antworten:
Anstatt die Dateien zu löschen, sollten Sie sie drehen, z
logrotate
. B. mit .Sie wissen nie, wann Sie die Protokolle tatsächlich benötigen, daher ist es besser, sie zu archivieren (bis zu einem angemessenen Alter, z. B. 3 Monate).
logrotate
können Ihre alten Protokolldateien komprimieren, sodass sie nicht viel Speicherplatz belegen.quelle
Wenn Sie alles in / var / log löschen, werden Sie höchstwahrscheinlich in sehr kurzer Zeit unzählige Fehlermeldungen erhalten, da sich dort voraussichtlich Ordner befinden (z. B. exim4, apache2, apt, cups, mysql, samba) und mehr). Plus: Es gibt einige Dienste oder Anwendungen, die ihre Protokolldateien nicht erstellen, wenn sie nicht vorhanden sind. Sie erwarten, dass mindestens eine leere Datei vorhanden ist. Die direkte Antwort auf Ihre Frage lautet also "Tun Sie das nicht !!!" .
Wie joschi betont hat, gibt es dafür keinen grund. Ich habe Debian-Server, auf denen seit Jahren keine einzige Protokolldatei gelöscht wurde.
quelle
Löschen Sie alle Dateien:
Löschen Sie alle .gz und gedrehten Dateien
Führen Sie den Befehl ohne "-delete" aus, um ihn zu testen.
quelle
Ich klone virtuelle Maschinen von einem Master. Es ist absolut sinnvoll, das Protokoll auf dem Master zu löschen, damit Sie beim Booten der Klone nicht das Protokoll des Masters erhalten. Ich tat in tcsh:
Dadurch werden die Protokolle gelöscht, die Dateien jedoch beibehalten.
quelle
Alle Protokolle auf einem Linux-System bereinigen , ohne die Dateien zu löschen :
Samba (
/var/www/samba
) erstellt Protokolldateinamen mit IP-Adressen. Vielleicht möchten Sie diese löschen:quelle
cp /dev/null $CLEAN
durch> $CLEAN
.Sie können die Option ctime verwenden, um alte Dateien zu finden ... zum Beispiel:
Versuchen Sie, wie bindbn erklärt, zuerst, Dateien zu finden und anschließend die Option delete: D
quelle
/var/log
Hat oft Berechtigungen vondrwxrwxr-x
, ist also nur beschreibbar, wenn der Benutzer root ist oder einer privilegierten Gruppe angehört. Das bedeutet, dass keine neuen Protokolldateien von nicht privilegierten Benutzern erstellt werden können.Anwendungen, die erwarten, sich an einem Punkt innerhalb von anzumelden,
/var/log
berühren häufig eine Datei irgendwo in der/var/log
Hierarchie während der Installationszeit (die häufig mit erhöhten Rechten auftritt) und werdenchmod
und möglicherweisechown
zu diesem Zeitpunkt Berechtigungen erhalten, die für die nichtprivilegierten Benutzer geeignet sind mit der Anwendung.Beispielsweise werden Apache-Protokolle in der Regel von
nobody
einem Benutzer geschrieben , der über möglichst wenige Berechtigungen verfügt, damit Apache seine Arbeit erledigen kann, ohne das System einem übermäßigen Risiko auszusetzen. Aber selbst eine gewöhnliche Anwendung erwartet oft, dass sie in eine Protokolldatei schreiben kann/var/log
.Was passiert also, wenn die Protokolldatei und der Pfad zur Protokolldatei nicht vorhanden sind? Das liegt ganz bei der Anwendung. Einige Anwendungen überspringen stillschweigend die Protokollierung. Andere werden viele Warnungen auslösen. Und andere werden einfach aussteigen. Es gibt keine feste Regel; Es hängt von der Wachsamkeit des Anwendungsentwicklers ab, wie kritisch der Entwickler seine Fähigkeit zur Protokollierung einschätzt. Bestenfalls versucht die Anwendung, an einem Ziel in eine Protokolldatei zu schreiben oder möglicherweise eine Protokolldatei zu erstellen und diese dann zu schreiben. Dies ist jedoch
/var/log
nicht möglich, da sie von einem Benutzer ausgeführt wird, der keine Schreibrechte hat dieser Teil des Dateisystems.Die kurze Antwort lautet also nein, nicht alles in löschen
/var/log
- es bricht die Vertragsbenutzer mit ausreichenden Rechten, um solche Dinge mit den Anwendungen zu tun, die auf ihrem System ausgeführt werden, und verursacht einige Geräusche, einige stille Fehler bei der Protokollierung und einige durch und durch brechen.Die geeignete Maßnahme besteht darin, die
logrotate
entsprechenden Konfigurationsdateien einzurichten . In der Regel wird die Drehung mit einem Cron-Job verknüpft. Die Drehung kann intervallbasiert, größenbasiert oder beides sein. Es ist sogar möglich, Regeln einzurichten, die eine intervallbasierte Rotation vermeiden, wenn die Protokolldatei nach Ablauf des Intervalls noch leer ist. Die Rotation kann das Versenden von Protokolldateien, das Komprimieren, Löschen, Vernichten usw. umfassen.Der durchschnittliche Benutzer muss sich nicht zu viele Gedanken über die Protokollrotation machen. Entwickler möchten wahrscheinlich sicherstellen, dass für die von ihnen verwendeten Protokolle Rotationsregeln festgelegt wurden. Tatsächlich ist es für Entwickler wahrscheinlich eine gute Methode, die Protokollrotation zur Installationszeit für alle softwarespezifischen Protokolle einzurichten, die von der Software erstellt und geschrieben werden.
quelle
Ich habe hier einen einfachen Cleaner implementiert:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
Es ist einfach:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(Groß- / Kleinschreibung wird nicht berücksichtigt)/var/log
^.*/.+\.log$
(Groß- / Kleinschreibung wird nicht berücksichtigt)quelle
Erstellen Sie ein ausführbares Skript und versuchen Sie, es als root auszuführen, wenn sudo nicht für Sie funktioniert
quelle