So entfernen Sie das Dateiprotokoll mit dem Dateinamen

So entfernen Sie das Dateiprotokoll mit dem Dateinamen

Angenommen, ich habe Protokolldateien mit diesem Namensformat.

NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30
NameLog.log.2014-10-01
NameLog.log.2014-10-02
NameLog.log.2014-10-03
NameLog.log.2014-10-04

Ich möchte nur die Protokolldatei löschen

NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30

Eigentlich möchte ich, dass das Dateiprotokoll nur 30 Dateien speichert. Wie kann ich das mit einem bashSkript lösen?

Antwort1

Der einfachste Weg, Ihr Ziel zu erreichen, besteht darin, alle Dateien im Verzeichnis zu löschen, die älter als 30 Tage sind. Sie können diesen findBefehl verwenden:

find /path/to/log/ -maxdepth 1 -name "NameLog.log*" -mtime +30 -delete

Erläuterung:(sehen:erklärtshell)

  • -maxdepth 1: nicht tiefer in die Ordnerstruktur einsteigen
  • -name "NameLog.log*": gilt nur für Protokolldateien mit diesem Namen
  • -mtime +30: deren Änderungszeitpunkt älter als 30 Tage ist
  • -delete: Lösche sie

verwandte Informationen