我正在尝试设置一个crontab以按设定的间隔执行。crontab作业是作为我在Apache上运行的PHP Slim应用程序的一部分进行设置的。出于某种原因,它只是没有将作业添加到crontab中,所以当我运行命令时:
crontab -u daemon -l
它说"守护进程没有crontab"(守护进程是默认的Apache帐户(。我确实设法使用另一个帐户手动添加了cronjob(它执行时没有其他问题(,所以很可能是权限问题。在不使用chmod 777(它将是一台生产服务器,因此我需要小心设置权限并记录它们(的情况下,解决此问题的最佳方法是什么?
在发布后设法找到了答案。
我在日志文件中查找cron:
cat /var/log/cron
大量(daemon) AUTH (crontab command not allowed)
错误消息。通过进一步的谷歌搜索,我看到了/etc/cron/allow
,它不存在,但/etc/cron.deny
存在,守护进程帐户也在那里列出。问题解决了。
默认情况下,我们不允许用户daemon
运行crontab作业。如果希望该用户运行crontab作业,则需要修改/etc/cron.deny
并从中删除daemon
用户。
希望能有所帮助。