From f73b12206b67abad4ad22b732b27176243d6337e Mon Sep 17 00:00:00 2001 From: jdubois Date: Mon, 23 Mar 2020 12:49:16 +0100 Subject: [PATCH] Rotation logs OpenVPN --- HowtoOpenVPN.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/HowtoOpenVPN.md b/HowtoOpenVPN.md index 8a773c63..8bca5226 100644 --- a/HowtoOpenVPN.md +++ b/HowtoOpenVPN.md @@ -195,12 +195,24 @@ Pour lancer manuellement OpenVPN sans redémarrer la machine : # /usr/local/sbin/openvpn --daemon --config /etc/openvpn/server.conf ~~~ -Pour que les logs générés par OpenVPN soient « rotatés », il faut rajouter la ligne en question dans le fichier `/etc/newsyslog.conf` : +Le fichier `/etc/newsyslog.conf` ne permet pas de « rotater » les logs OpenVPN proprement, car celui-ci chercherait à continuer à écrire dans le file descriptor du fichier précédent. +Pour tout de même utiliser newsyslog, il faut rajouter la ligne suivante dans le fichier `/etc/newsyslog.conf` : ~~~ /var/log/openvpn.log 600 52 * $W6D4 Z ~~~ +Et plannifier en crontab un restart d'OpenVPN juste après cette rotation, pour qu'il puisse récupérer le nouveau file descriptor : + +~~~ +05 4 * * 6 /etc/rc.d/openvpn restart +~~~ + +Si on ne veut pas avoir à redémarrer OpenVPN, on peut également utiliser un cron qui va copier le fichier de log, compresser la copie, et vider l'actuel (équivalent d'un copytruncate du logrotate) : + +~~~ +0 4 * * 6 cp /var/log/openvpn.log /var/log/openvpn.log.$(date +%F) && echo "$(date +%F' '%R) - logfile turned over via cron" > /var/log/openvpn.log && gzip /var/log/openvpn.log.$(date +%F) +~~~ ## Configuration client