我正在使用 Ubuntu 14.04 (Trusty) 版本,我的 crontab 出现了问题(在 13.10 之前它可以正常工作)
这是命令行
/usr/lib/cgi-bin/awstats.pl -config=www.skrik.fr -update >/dev/null
如果我以 root 身份在终端中运行它,则不会出现任何错误,一切运行顺利
但如果我添加它sudo crontab-e我明白
0 * * * * root /usr/lib/cgi-bin/awstats.pl -config=www.skrik.fr -update >/dev/null
处理 /etc/awstats/awstats.cloud.skrik.fr.conf 时出错 使用 AWStats 版本 7.2(内部版本 1.992)为配置“/etc/awstats/awstats.cloud.skrik.fr.conf”创建/更新数据库 从日志文件“/var/log/apache2/cloud/access.log”中的数据... 错误:无法打开服务器日志文件“/var/log/apache2/cloud/access.log”:权限被拒绝
当我将其添加到 /etc/crontab 时,我遇到了完全相同的问题
为什么 cron job 不想以 root 身份工作?
非常感谢你的帮助
答案1
解决方案
问题如下:
/etc/cron.d 上设置了一个 awstats 作业,该作业与 www-data 一起运行。这个作业导致了问题,因为 www-data 无法访问 /var/log/apache2
首先你需要:
chmod o+rx /var/log/apache2
接下来你需要改变/etc/logrotate.d/apache2
create 640 root adm
进入:
create 644 root adm
重新启动服务。
我的 /etc/crontab 运行正常。但我更喜欢使用非 root 帐户运行脚本。