Ich möchte Folgendes in der Logrotate-Einstellungsdatei angeben.
/etc/logrotate.d/nanika_no_service
/var/log/nanika_no_service/【"aiueo"Andere als Protokolle, die mit] beginnen.log {
monthly
}
/var/log/nanika_no_service/aiueo.log {
daily
}
Es scheint unmöglich. Kompromiss zwangsläufig unten.
/etc/logrotate.d/nanika_no_service
/var/log/nanika_no_service/[!a]*.log {
monthly
}
/var/log/nanika_no_service/a*.log {
daily
}
https://github.com/logrotate/logrotate/blob/master/logrotate.c https://github.com/logrotate/logrotate/blob/master/config.c
Entsprechend dem Quellcode wird glob verwendet, um nach rotierenden Dateien zu suchen. Also habe ich auch die Spezifikationen von glob gelesen, aber es gab keine Möglichkeit, "andere als mehrere Zeichen" zu schreiben, obwohl es eine Anleitung für Platzhalter "andere als einzelne Zeichen" gab.
Aus diesem Grund die Dateispezifikation logrotate.conf
/var/log/nanika_no_service/【"aiueo"Andere als Protokolle, die mit] beginnen.log {
#Abkürzung
}
Die Schlussfolgerung ist bisher, dass es nicht wie oben geschrieben werden kann. Gibt es einen guten Weg?
Ich möchte nur einen Protokolltyp unter verschiedenen Bedingungen für Protokolle im selben Verzeichnis drehen. Deshalb habe ich es untersucht. Im obigen Beispiel entspricht "aiueo.log" dem.
aber bitte warte einen Moment. Wäre es nicht besser, wie folgt zu schreiben, ohne [!]
Zu verwenden?
/etc/logrotate.d/nanika_no_service
/var/log/nanika_no_service/*.log {
monthly
}
/var/log/nanika_no_service/aiueo.log {
daily
}
Genau. Das habe ich auch erwartet. Aber leider ist es NG.
Die Logrotate-Einstellung funktioniert bei Duplikaten nicht gut. Wenn Sie dies tun, wird aiueo.log
auch in * .log
enthalten sein und es werden doppelte Einstellungen vorgenommen.
Unter solchen Bedingungen tritt zur Laufzeit ein Fehler auf, oder aiueo.log
folgt ebenfalls der Einstellung von * .log
(abhängig von der Einstellungsreihenfolge, aber vergessen Sie, welche Sequenz welches Verhalten sein wird). Ich tat).
In diesem Beitrag habe ich untersucht, ob es möglich ist, "andere als mehrere Zeichen" in der Zielprotokollspezifikation von logrotate auszudrücken. Leider habe ich bisher keinen Weg gefunden, dies zu tun.
Viel Glück.
Recommended Posts