rotação de log openvpn

rotação de log openvpn

Estou tentando alternar os arquivos de log do OpenVPNs todos os meses. O problema parece ser que simplesmente renomear os arquivos não resolve. Os dados ainda são gravados no arquivo antigo (o que indica que o arquivo de log é mantido aberto e o log ainda grava no objeto de arquivo antigo).

Então agora eu escrevi um script que reinicia o openvpn no início de cada mês depois de atualizar um link simbólico para o local do novo arquivo de log.

Mas esse script parece ter bugs e às vezes falha ao iniciar o servidor corretamente (às vezes o tun0 fica inativo).

Então, gostaria de perguntar se algum de vocês conhece uma maneira melhor de conseguir a rotação de logs no OpenVPN?

Editar: Estou usando o Debian Squeeze e meu script de reinicialização já dorme 5 segundos entre parar e iniciar o ovpnservidor

Responder1

Existem dois métodos para lidar com esta situação. A forma ideal é fazer com que o logrotate notifique o processo, seja via sinal ou reiniciando o processo via postrotatediretiva. A outra maneira é usar o copytruncate. O copytruncatemétodo deve funcionar na sua situação. Aqui está a descrição da documentação:

   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.

Responder2

Que tal uma solução alternativa para fazer login no syslog?

Veja o uso --daemon [progname](ou --syslog [progname]) em man openvpn(http://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html)

informação relacionada