openvpn 日志轮转

openvpn 日志轮转

我尝试每月轮换 OpenVPN 日志文件。问题似乎是简单地重命名文件并不能解决问题。数据仍然写入旧文件(这表明日志文件保持打开状态并且日志记录仍写入旧文件对象)。

所以现在我编写了一个脚本,在每个月初更新指向新日志文件位置的符号链接后重新启动 openvpn。

但这个脚本似乎有错误,有时无法正确启动服务器(tun0 有时会关闭)。

所以我想问一下你们中是否有人知道在 OpenVPN 中实现日志轮转的更好方法?

编辑:我正在使用 Debian Squeeze,并且我的重启脚本在停止和启动服务器之间已经休眠了 5ovpn

答案1

有两种方法可以处理这种情况。理想的方式是让 logrotate 通过信号或通过指令重新启动进程来通知进程postrotate。另一种方法是使用copytruncate.该copytruncate方法应该适合您的情况。这是文档中的描述:

   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.

答案2

登录系统日志的解决方法怎么样?

请参阅(中的用法--daemon [progname](或--syslog [progname])man openvpnhttp://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html

相关内容