我在 /etc/crontab 中有以下条目
47 * * * * root /usr/sbin/logrotate -v -f /etc/logrotate.d/mariadb_dumps &> /tmp/errrot
该行之所以会运行,是因为 /tmp/errrot 如果已创建(空),但 logrotate 不执行任何操作。
如果我在 cron 之外的命令行上运行该行,它会正常工作并输出到 /tmp/errrot。
文件 /etc/logrotate.d/mariadb_dumps 有:
/home/backups/alldbs.sql.gz {
rotate 48
create 640 root adm
notifempty
nocreate
}
套餐有:
cronie-1.4.11-19.el7.x86_64
cronie-anacron-1.4.11-19.el7.x86_64
操作系统是CentOS 7
我应该修改什么才能每小时运行 logrotate?
注意:我什至尝试将该行放入 /etc/cron.d 中的单独文件中,甚至为 logrotate 设置自定义路径,如下所示如何每小时执行一次logrotate。这些方法都不起作用。
答案1
最后,我发现这是一个selinux问题,但它有些隐藏,所以我运行:
semodule --disable_dontaudit --build
然后我发现了这些拒绝,我创建了异常的 selinux 模块并应用,现在它工作正常。
然后,我跑了:
semodule --build