【问题标题】:Logrotate not deleting file after certain daysLogrotate 在某些天后不删除文件
【发布时间】:2019-12-15 05:54:36
【问题描述】:

所以我有这个 logrotate 配置文件。我想删除超过 2 天的文件。 第一天之后,它将 .1 添加到所有超过 2 天的文件的文件名中,而不是删除这些文件 然后第二天之后,仍然没有删除那些文件。我不确定我在哪里做错了。但是如果我强制运行它就可以了 logrotate -f '/etc/logrotate.d/configname'

这是我创建的配置文件

/data/adrouters/*/IAV/*/* /data/adrouters/*/logs/* /data/adrouters/*/SchOutIav/*/* /data/adrouters/*/SiteInfo/archive/* /data/logs/* {
    missingok
    rotate 1
    nocreate
    nodateext
    ifempty
    lastaction
        find /data/adrouters/ -type f -mtime +2 -exec rm \{} \;
        find /data/logs/ -type f -mtime +2 -exec rm \{} \;
    endscript
}

【问题讨论】:

    标签: linux logrotate


    【解决方案1】:

    这是您的通配符问题,而不是您运行 cronjob 的方式。

    Logrotate 不是有状态的;它不会跟踪哪些文件是以前轮换的日志而不是新的日志文件。

    它可以做出此决定的唯一方法是在执行时通过文件名。当您使用此类通配符指定日志路径时,

    /data/adrouters/*/IAV/*/*
    /data/adrouters/*/logs/* 
    /data/adrouters/*/SchOutIav/*/* 
    /data/adrouters/*/SiteInfo/archive/* 
    /data/logs/*
    

    logrotate 将尝试旋转这些目录中的每个文件,就好像它们是新的日志文件一样,因为 * 将匹配该目录中的每个文件。这就是这些行的;你告诉 logrotate 哪些文件被认为是 new 日志文件,要轮换。如果您扩展到该目录中的每个文件,则永远不会看到要相应地旋转(或删除)的旧文件。

    您需要收紧正在使用的通配符。您的日志路径应该永远以星号结尾除非您使用olddir 指令将旧日志文件轮换出该目录。

    我之前回答过这个问题:Files are not removing in logrotate script and permissions and user,group details are not updated

    【讨论】:

      【解决方案2】:

      logrotate 配置文件仅指定 logrotate 在针对您指定的日志文件运行时应用的规则。

      您还需要将 logrotate 执行行添加到您的 cronjob。

      以root身份添加cronjob(cronjob基于不同的用户!):

      sudo su
      crontab -e # <==== this will open an editor for you to edit your cronjobs, for root user
      

      在编辑器中,添加如下条目:

      */5 * * * * logrotate '/etc/logrotate.d/configname'
      

      “*/5 * * * ”部分是 cron 表达式,表示每 5 分钟执行一次,您需要将其更改为对您有意义的内容。在进行测试时,您可以将其设置为“/1 * * * *”,然后您可以监视 cron 的日志以查看它实际发生的情况。

      cron 资源:https://crontab.guru/

      【讨论】:

      • 但是更改文件名是否意味着它确实在文件中旋转?
      猜你喜欢
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 2015-03-21
      • 2014-02-19
      • 2013-10-04
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多