Logrotate设置:旋转,通过电子邮件发送和添加行来存档日志

时间:2014-04-09 09:34:03

标签: logrotate

我在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
}

1 个答案:

答案 0 :(得分:0)

您一直很高兴,直到“创建olddir旋转/如果还不存在”。运行logrotate -d /etc/logrotate.conf,我敢打赌,对于该配置,您会得到类似以下的信息:

  

错误:/etc/logrotate.conf:验证olddir路径旋转时出错:没有这样的文件或目录

这是因为在logrotate读取其配置文件时该目录必须存在 ;这是在执行任何预旋转脚本之前执行的,因此自然会导致该目录不存在并且解析配置失败。首先创建该目录,但是首先要创建。