![无法通过 cron 每小时记录轮换](https://linux22.com/image/13245/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20cron%20%E6%AF%8F%E5%B0%8F%E6%97%B6%E8%AE%B0%E5%BD%95%E8%BD%AE%E6%8D%A2.png)
我在 /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