Cron 停止记录到 /var/log/cron.log

Cron 停止记录到 /var/log/cron.log

一个月前,我/var/log/cron.log通过修改/etc/rsyslog.d/50-default.conf.日志记录工作得很好,直到我更改了权限/var/log(通过放宽权限限制),并通过执行logrotate --force /etc/rsyslog.d/50-default.conf.从那时起,cron 似乎就停止了记录。不再有/var/log/cron.log.我执行sudo touch /var/log/cron.log创建它,但此后它一直保持 0 字节。

有关我对权限所做的更多详细信息:

我跑了sudo chmod 775 /var/log,随后将权限更改回sudo chmod 755 /var/log.所有其他服务似乎都正确记录,并且 cron 作业实际上正在运行(使用 验证ps aux | grep rsync,因为我只通过 cron 运行 rsync)。

我不确定正确的用户和组访问权限,因此cron.log我尝试将其更改为syslog:adm大多数其他日志文件,但这没有帮助,所以我将其切换回root:root

cron.log 的当前权限:-rwxr-xr-x 1 root root 0 Apr 27 16:34 cron.log

不知道从这里去哪里。我知道我可以将 cron 日志记录到我想要的任何文件(通过添加>> /path/to/logfile到 cron 作业条目的末尾或通过编辑/etc/rsyslog.d/50-default.conf),但为了保持一致性,我希望它继续记录到 cron.log。我想我可以添加>> /var/log/cron.log到每个 cron 条目的末尾,但这对我来说似乎有点老套。

编辑:根据我下面的评论,我将日志位置更改为/tmp/cron.log并且日志记录已恢复。起初,我认为这意味着文件夹或文件权限错误。但是,我对照运行同一发行版的另一台计算机检查了它们,文件夹权限是正确的。文件权限限制不够,可以使用sudo chmod 640 cron.log.

作为测试,我删除了空的 cron.log,并且从未重新创建它。我修改了 rsyslogd 配置以将其记录到 crond.log,但该文件从未创建。

答案1

为什么你不尝试编辑/etc/rsyslog.conf?!如您所知,您可以强制 rsyslog 记录没有特定记录器的服务。因此,我建议阅读man rsyslog.conf以了解如何使服务生成日志并编辑服务以在此处发送日志(编辑某处,例如/etc/init.d/rsyslog配置日志部分)。

相关内容