Die Entwickler logrotate
haben absichtlich überlappende Protokolldateidefinitionen verboten. Während spezifischere Regeln allgemeinen Regeln in der Konfiguration folgen dürfen, erzeugen Protokolldateipfadüberlappungen immer noch einen Fehler. Dies kommt zum Teil den Paketbetreuern zugute, die logrotate-Regeln enthalten, sowie den Benutzern dieser Pakete, sodass Überschneidungen offensichtlich werden und gemeldet werden können.
Wenn sich die Protokolldateien für spezifische Regeln und generische Regeln im selben Verzeichnis befinden müssen (können Sie sie zum Verschieben neu konfigurieren?), Müssen Sie für jeden überlappenden Pfad einen expliziten Ausschluss von der generischen Regel erstellen und beibehalten. logrotate.conf
Dies ist zwar nicht ausdrücklich vorgesehen, aber wenn Sie logrotate
in einer Umgebung mit extglob
aktivierten Shell- Glob-Erweiterungen ausgeführt werden, ist der Ausschluss möglich. Sie können überprüfen, ob extglob
aktiviert ist, indem Sie shopt extglob
in derselben Root-Umgebung ausführen, in der Ihr Crontab-Logrotat ausgeführt wird, und es kann explizit (falls erforderlich) mit aktiviert werden shopt -s extglob
.
Wenn extglob
diese Option aktiviert ist, können folgende Konstrukte verwendet werden:
/tmp/!(special).log {}
... wodurch die Überlappung mit Ihrer spezifischeren späteren Regel verhindert und der Fehler vermieden wird.