[LINUX] Verwalten Sie Protokollrotationsgenerationen mit einem Shell-Skript.

Wenn Sie 3 Generationen behalten möchten, können Sie das folgende Skript mit einem Liner verwenden. (Die Idee ist, 3 Generationen zu belassen → alle Dateien außer den 3 Generationen, die Sie behalten möchten, zu löschen.)

(Beim Löschen vom ältesten in der Zeit) ls -1rt | head -n -3 | xargs rm -rf

(Beim Löschen ab dem ältesten Datum der Protokollzeichenfolge, z. B. testlog20200701) ls -1 | head -n -3 | xargs rm -rf


Beschreibung (beim Löschen der alten anhand der Zeichenfolge im Protokoll)

  1. Platzieren Sie ein Dummy-Protokoll

touch testlog2020070{1..9}

  1. Bestätigung

ls -la

-rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200701 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200702 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200703 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200704 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200705 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200706 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200707 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200708 -rw-r - r--. 1 root root 0 17. Mai 16:40 testlog20200709

  1. Extraktion des Löschziels Ich möchte 20200707 bis 20200709 behalten → (lesen Sie, wie ich Testlog 20200701 bis 20200706 löschen möchte)

ls -1 | head -n -3

testlog20200701 testlog20200702 testlog20200703 testlog20200704 testlog20200705 testlog20200706

  1. Löschen Sie das extrahierte Protokoll

ls -1 | head -n -3 | xargs rm -rf

Bestätigung

ls -la

testlog20200707 testlog20200708 testlog20200709

Ich konnte die gewünschten 3 Generationen verlassen.

*) (Beim Löschen vom ältesten in der Zeit) wird durch Ausführen mit ls -1rt realisiert. Option t Nach Zeit sortieren Option r In umgekehrter Reihenfolge sortieren


Es wird davon ausgegangen, dass die Protokollrotation selbst mit dem Linux-Standard logrotate.d ausgeführt wird und nur der gelöschte Teil vom Shell-Skript ausgeführt wird. (Da das Löschskript von logrotate.d vor x Tagen in Form von verarbeitet wurde, bleibt das Protokoll möglicherweise erhalten, wenn das Löschskript aus irgendeinem Grund nicht funktioniert.)

Recommended Posts

Verwalten Sie Protokollrotationsgenerationen mit einem Shell-Skript.
Zeigen Sie die heutige Wettervorhersage mit Shell-Skript an
Versuchen Sie, mit einer Shell zu programmieren!
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Verarbeiten Sie die Dateien im Ordner in der Reihenfolge mit dem Shell-Skript
[Linux] Schreiben Sie ein Bereitstellungstool mit rsync und einem Shell-Skript
Automatisieren Sie die Umgebungserstellung mit ShellScript
Schreiben Sie ein Batch-Skript mit Python3.5 ~
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
[Ubuntu] So führen Sie ein Shell-Skript aus
Erstellen Sie ein Sternensystem mit Blender 2.80-Skript
Erstellen eines Shell-Skripts zum Schreiben eines Tagebuchs
Übertragen Sie die Protokolle von Netzwerkgeräten auf den Syslog-Server und verwalten Sie Generationen mit logrotate
Grundlagen des Shell-Skripts # 2
Löschen und generieren Sie Seriennummerndateien mit einem Shell-Skript
Starten Sie die Shell, während das Python-Skript ausgeführt wird
Versuchen Sie, ein FizzBuzz-Problem mit einem Shell-Programm zu erstellen
Shell-Skript zum Einfügen von Webmin in Alpine Linux
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Tipps zum Öffnen einer Szene mit einer fehlerhaften Referenz in einem Skript
A4 Größe mit Python-Pptx
Befehl im Shell-Skript ersetzen
Schaben mit kratzender Schale
Shell script @ study memo
Mit Dekorateur dekorieren
Shell-Skript, das beim Erstellen von Dateien doppelte Namen nummeriert
Ich habe das Windows PowerShell-Kochbuch durch ein Python-Skript ersetzt.
[Django] Verwalten Sie Einstellungen wie das Schreiben in settings.py mit einem Modell
So führen Sie ein Python-Programm in einem Shell-Skript aus
[Python, Shell-Skript, Teamentwicklung] Erstellen Sie ein geschicktes Git-Repository
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Greifen Sie über das Ausführungsskript mit einem relativen Pfad auf die Datei zu.
Verhalten beim Angeben einer Liste mit shell = True im Unterprozess
Laden Sie mit einer Action-Kamera aufgenommene Bilder mit einem Mapillay-Skript hoch
Ich werde nie vergessen, wie man ein Shell-Skript schreibt, nicht vergessen! !!