Ich Nginx
drehe täglich Protokolle (mit dateext
). Nach der Rotation möchte ich die Datei für den Tag, der gerade vergangen ist, analysieren und eine E-Mail mit der Anzahl der vom Nginx-Server zurückgegebenen Fehler kompilieren.
Wie kann ich auf die Ausgabedatei im Postrotate / EndScript-Bereich von zugreifen logrotate
?
Antworten:
Mir sind keine Variablen bekannt, die Sie verwenden können, wenn Sie danach suchen. Unmittelbar nach dem Drehen des Protokolls sollten Sie jedoch genau wissen, auf welchen Namen die Datei gedreht wurde, basierend auf der Konfiguration, die Sie für die Drehung (
/var/log/somefile.1
oder dergleichen) festgelegt haben.Vielleicht ist es einfacher zu beantworten, wenn Sie das tatsächliche Problem beschreiben, das Sie zu lösen versuchen.
quelle
Wenn Sie die Direktive "sharedscripts" nicht verwenden, erhält Ihr Postrotate-Skript als $ 1 die Datei, die die Protokollrotation ausgelöst hat. Dies kann hilfreich sein, wenn Sie versuchen, ein generisches Skript mit mehreren Zeilengruppen für logrotate zu verwenden. Das heißt, wenn man so etwas annimmt:
Wenn übereinstimmende Dateien gedreht werden müssen, wird Ihr Skript mit $ 1 aufgerufen, das auf "/var/log/sample1.log", "/var/log/sample2.log" oder "/var/log/sample3.log" festgelegt ist " wie angemessen. Sie können dann ".1" anhängen, um die gerade gedrehte Datei zu finden.
Wenn Sie die Option "sharedscripts" verwenden, wird Ihr Skript mit einem Wert von $ 1 aufgerufen, der auf "/var/log/sample1.log /var/log/sample[23[.log" festgelegt ist (dies hilft Ihnen jedoch, eine bestimmte Zeilengruppe zu identifizieren) nicht die genaue Datei).
Hoffentlich gibt Ihnen dies einen Ausgangspunkt. Beachten Sie, dass dies nur für logrotate> v3.7.5 funktioniert.
quelle