一个月前,我/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
配置日志部分)。