Ich habe einen Ordner, /home/testuser/log
der Protokolldateien von einem Tag alt enthält *.log
. Ich möchte alle Protokolldateien, die älter als ein Tag sind, auf eine einzige Zip-Datei (gzip oder tar.gz) komprimieren und die älteren Dateien löschen.
Ich habe versucht, Find- und Tar-Befehle per Pipeline zu übertragen, aber es hat nicht funktioniert
logrotate
ist Ihr FreundAntworten:
Erstellen Sie tar.gz-Dateien, die älter als ein Tag sind
Ältere Dateien löschen [Hinweis: - Wenn die unten stehende Suchausgabe korrekt ist, entfernen Sie das Echo. Danach werden diese Dateien gelöscht.]
quelle
Ich erweitere den Kommentar von sr_ und verwende logrotate, um einen nächtlichen SQL-Dump zu verwalten. Ich habe diese Konfiguration in
/etc/logrotate.d/mydbdump
:Grundsätzlich wird die
/var/backups/dump.sql
Datei (Sie würden stattdessen den Namen Ihrer Protokolldatei angeben) komprimiert und in umbenanntdump.sql.1.gz
. Davor dreht es das altedump.sql.1.gz
aufdump.sql.2.gz
und so weiter und löscht das älteste.logrotate
selbst wird normalerweise von aufgerufen.cron
Sehen Sie sich also Ihre/etc/cron*
Verzeichnisse an, um zu steuern, wann es ausgeführt wird.quelle
if(created date=current date-1) compress all, move to new location, Delete older files
logrotate
erledigt das für Sie. Wenn Sie sich Ihr/var/log
Verzeichnis ansehen und die*.#.gz
Dateien bemerken , sehen Sie die Ergebnisse.prerotate
/postrotate
zu verwenden, um die Eingabe- / Ausgabedateien manuell zusammenzuführen.