如何使用cronolog或Rotatelogs在ProFTPd中旋转日志

时间:2018-10-12 12:23:04

标签: linux proftpd

我将使用cronolog旋转Proftpd日志(不重新启动Proftpd) 在 /etc/proftpd.conf 中,我写道:

SystemLog                        "|cronolog  /var/log/proftpd/%Y/%m/%d/sys2.log"

正在跑步

sudo proftpd

我有:

  • error: unable to stat() /var/log/proftpd/|cronolog /var/log/proftpd/%Y/%m/%d: Datei oder Verzeichnis nicht gefunden
  • Fatal: SystemLog: unable to redirect logging to '/var/log/proftpd/|cronolog /var/log/proftpd/%Y/%m/%d/sys2.log': Datei oder Verzeichnis nicht gefunden on line 16 of '/etc/proftpd.conf

(Datei oder Verzeichnis nicht gefunden =找不到文件或目录)

然后我使用相同的错误而不是cronolog我使用了rotatelogs

有什么想法吗?

P.S我不应该重启ProFTP,所以请不要建议logrotate或类似的想法!

2 个答案:

答案 0 :(得分:0)

非常感谢@Ivan Gurzhiy

解决方法是:“ FIFO读取器进程必须先运行” ..)))

非常感谢!

答案 1 :(得分:-1)

来自documentation

  

SystemLog-将系统日志重定向到文件

cronolog从stdin获取数据。

接下来,您可以创建用于启动proftpd和cronolog的简单包装,是的,在这种情况下,您必须将所有输出都转换为stdout并关闭日志记录:

proftpd | cronolog...

在documenation(cronolog)中回答有关命名管道的问题,但是该命名管道必须作为文件存在(请参阅mkfifo)。  您可以使用名称为pipe的mkfifo创建并为SystemLog设置此文件。  然后创建脚本包装程序,以从先前创建的缓冲区(命名管道)中读取数据,并重定向到cronolog的stdin。

更新: 如果将cronolog用于循环日志,则必须先运行cronolog,然后再运行ProFTPd