Freitag, 21. Oktober 2016, 7:41 Uhr

Wenn eine Linux-Anwendung trotz logrotate in das rotierte Log-File schreibt

Am letzten Wochenende habe ich meine Site-to-Site OpenVPN-Infrastruktur auf Vordermann gebracht (Github-Repo folgt). Da ich aus Debugging-Gründen anfänglich sehr, sehr viel geloggt habe (verb 5 in der lokalen OpenVPN .conf-Datei) sind die Log-Dateien innert eines Tages auf satte 110 MB angewachsen. Mittlerweile — da alles sauber läuft — verwende ich verb 3 und die Log-Files sind nur noch einige Kilobytes gross.

Dennoch habe ich mich entschieden, logrotate so zu konfigurieren, dass die Log-Dateien täglich rotiert werden. Leider musste ich nach der ersten Durchführung aber realisieren, dass OpenVPN munter weiter in /var/log/openvpn/append.log.1 weiterschreibt, obwohl nun /var/log/openvpn/append.log angesagt wäre. Mit meinem Linux-Halbwissen gehe ich davon aus, dass der Filepointer des OpenVPN-Daemons auf dieselbe Datei zeigt, auch wenn sich deren Namen ändert.

Glücklicherweise kennen die Entwickler von logrotate dieses Problem und bieten dafür eine handliche Option namens copytruncate an:

/var/log/openvpn/*.log {
	daily
	missingok
	rotate 366
	compress
	delaycompress
	copytruncate
	create 600 root root
}

Quelle: openvpn logrotate

Tags: , , ,
Labels: Linux

Ein Kommentar Kommentare

William sagt:

Hat mir sehr geholfen. Danke. Nur ein Tipp das „create xxx“ nach „copytruncate“ ist überflüssig weil durch copytruncate genau das verhindert wird – dass er ein neues logfile anlegt ;)
copytruncate
[…] Wenn diese Option benutzt wird, dann hat die create Option keine Bedeutung, weil die alte Logdatei ja bestehen bleibt.

Kommentar erfassen