Bash-Skript – Logrotate-Ausgabe umbenennen

Bash-Skript – Logrotate-Ausgabe umbenennen

Bei der Ausführung logrotatewird Folgendes angezeigt:

error: error creating output file /var/log/remote/172.29.202.29/contrail-vrouter-agent.log.1: File exists
error: error creating output file /var/log/remote/172.29.207.139/swift-object-server.log.1: File exists
...

Es gibt ungefähr 1000 dieser vorhandenen log.1Dateien. Ich möchte sie alle umbenennen, ***log.2 damit ich sie erfolgreich erneut ausführen kann logrotate.

Wie mache ich das?

Antwort1

Wenn Sie nur nach einer einmaligen Lösung suchen, sollte dies funktionieren:

find /var/log/remote/ -maxdepth 2 -type f -name *.log.1 | sed -e 's/log\.1/log\./g'  | xargs -i mv {}1 {}2

Bitte beachten Sie jedoch, dass dadurchALLE *.log.1Dateien in/var/log/remote/*/

Wenn Sie also Verzeichnisse überspringen möchten , sollten Sie die Option nach find /var/log/remote/verwenden (siehe-not -path <path>diese Antwort in einem anderen Thread als Beispiel)

verwandte Informationen