Estoy intentando rotar los archivos de registro de OpenVPN cada mes. El problema parece ser que simplemente cambiar el nombre de los archivos no funciona. Los datos aún se escriben en el archivo antiguo (lo que indica que el archivo de registro se mantiene abierto y el registro aún escribe en el objeto del archivo antiguo).
Así que ahora escribí un script que reinicia openvpn al comienzo de cada mes después de actualizar un enlace simbólico a la ubicación del nuevo archivo de registro.
Pero este script parece tener errores y a veces no puede iniciar el servidor correctamente (a veces tun0 no funciona).
Entonces quería preguntar si alguno de ustedes conoce una mejor manera de lograr la rotación de registros en OpenVPN.
Editar: Estoy usando Debian Squeeze y mi secuencia de comandos de reinicio ya duerme 5 segundos entre detener e iniciar el ovpn
servidor
Respuesta1
Hay dos métodos para manejar esta situación. La forma ideal es hacer que logrotate notifique el proceso, ya sea mediante una señal o reiniciando el proceso mediante la postrotate
directiva. La otra forma es usando el copytruncate
. El copytruncate
método debería funcionar en su situación. Aquí está la descripción de la documentación:
copytruncate
Truncate the original log file in place after creating a copy,
instead of moving the old log file and optionally creating a new
one, It can be used when some program can not be told to close
its logfile and thus might continue writing (appending) to the
previous log file forever. Note that there is a very small time
slice between copying the file and truncating it, so some log-
ging data might be lost. When this option is used, the create
option will have no effect, as the old log file stays in place.
Respuesta2
¿Qué tal una solución para iniciar sesión en syslog?
Ver uso --daemon [progname]
(o --syslog [progname]
) en man openvpn
(http://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html)