我在logrotate.conf中有一个不想运行的logrotate设置。我想要做的是: 每天旋转日志并截断日志 通过电子邮件发送日志的旋转线条 将旋转日志的行添加到每月存档 创建olddir旋转/如果它还不存在
我在这里失踪了什么?
(log file path){ daily rotate 0 olddir rotated copytruncate nodateext missingok notifempty compress mailfirst mail email (at) email . com prerotate original = $1 replacement = 'rotated' olddir_path = "${original/php-error.log/$replacement}" mkdir olddir_path endscript postrotate original = $1 replacement = 'rotated' olddir_path = "${original/php-error.log/$replacement}" cat "${olddir_path}/php-error.log.1" >> "${olddir_path}/php-error-monthly.log" endscript }
你很高兴“创建olddir旋转/如果它还不存在”。运行logrotate -d /etc/logrotate.conf
,我打赌你会得到这样的配置:
错误:/etc/logrotate.conf:验证olddir路径已旋转时出错:没有此类文件或目录
这是因为logrotate读取其配置文件时该目录需要存在;这是在任何prerotate脚本执行之前,因此目录不存在并且解析配置失败。首先制作该目录,但是你首先想要。