【问题标题】:Why logrotate doesn't properly postrotate only has 1 day delay为什么 logrotate 不能正确 postrotate 只有 1 天延迟
【发布时间】:2021-11-18 20:30:15
【问题描述】:

我在 /etc/logrotate.d/mikrotik :

/var/log/mikrotik.log {
rotate 2
daily
compress
dateext
dateyesterday
dateformat .%Y-%m-%d
postrotate
#/usr/sbin/invoke-rc.d syslog-ng reload >/dev/null
rsync -avH /var/log/mikrotik*.gz /backup/logs/mikrotik/
/usr/lib/rsyslog/rsyslog-rotate
endscript
}

每天都会创建 mikrotik.log.YYYY-MM-DD.gz 文件 问题是 postrotate 中的 rsync 不会复制最后一个文件。比如2021年9月25日,/var/log中有这样的文件:

-rw-r ----- 1 root adm 37837 Sep 24 23:49 mikrotik.log. 2021-09-24.gz
-rw-r ----- 1 root adm 36980 Sep 25 23:55 mikrotik.log. 2021-09-25.gz

并且在 /backup/logs/mikrotik/ 中只有:

-rw-r ----- 1 root adm 35495 Sep 23 00:00 mikrotik.log. 2021-09-22.gz
-rw-r ----- 1 root adm 36842 Sep 23 23:58 mikrotik.log. 2021-09-23.gz
-rw-r ----- 1 root adm 37837 Sep 24 23:49 mikrotik.log. 2021-09-24.gz

从 9 月 25 日 23:55 开始没有文件 mikrotik.log.2021-09-25.gz 直到下一次轮换才会被复制。 如何使今天打包的文件被 postrotate 复制?

【问题讨论】:

    标签: logrotate


    【解决方案1】:

    问题解决了。

    它依赖于执行操作的顺序。 Lgrotate 在压缩到 .gz 之前会执行“后旋转”部分。 该问题的解决方案是将名称从“postrotate”更改为“lastaction”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2021-05-23
      相关资源
      最近更新 更多