我们有一个相当大的依赖于FTP消息传递的系统。/var/log/pureftpd.log受到监视以响应特定操作。
目前,我注意到一个有趣的问题,例如,纯ftpd正在将新事件记录到旧的日志文件(pureftpd.log.1)中。
当FTP连接打开很长一段时间时,会发生这种情况。当logrotate通过重命名旧日志来轮换日志文件时。似乎当前活动的FTP连接仍然链接到旧文件,并且所有事件都写入其中。此问题将在FTP客户端重新连接后修复。
此行为导致pureftpd监控无法记录某些事件。
如何使用logrotate.d或其他方法修复它,以确保所有新事件始终写入正确的日志文件,而无需重新连接ftp客户端?
pure-ftpd在默认设置下运行,logrotate配置如下:
/var/log/pureftpd.log {
weekly
notifempty
missingok
}感谢您的任何建议:)
发布于 2021-08-23 18:24:18
这是打开要写入的文件描述符的进程的常见行为;logrotate不处理这些打开的句柄,因此它们将“跟随”到新轮换的文件。因此你会看到这样的行为。
我假设您必须在旋转文件后重新加载或重新启动pure-ftpd守护进程本身,例如假设使用systemd
postrotate
systemctl reload pure-ftpd > /dev/null
endscript我不知道这会不会扼杀你所有的人脉。但这就是你所看到的行为的根源。
https://stackoverflow.com/questions/68861605
复制相似问题