我正在尝试为运行Web进程的用户专门设置一个crontab。 我有root / sudo访问权限,所以我使用-e选项为www数据用户写了一个条目,这里是使用-l选项的列表:
/etc$ sudo crontab -u www-data -l # mh dom mon dow command 15,30,45 * * * * /var/www/cron/test.cli.php
但是,该过程不按指定的时间间隔运行。 我很确定我有正确的语法,所以这导致我有一些其他的可能性
1)格式不正确的/etc/cron.allow? 我实际上创build了这个sudo / root,我所做的只是input一个“www-data”的行。 但是,这是正确的格式? 我很难find关于如何格式化/etc/cron.allow的信息,尽pipe我可以告诉( http://linux.die.net/man/1/crontab )
2)/ etc是在Debian上cron.allow的正确位置? 我google了一下,它提到它可能在SUSE的其他地方,但所有迹象,除非我是错误的是在Debian / etc下是正确的位置。
3)/etc/cron.allow权限? 我(暂时)把它们设置为777,这是否太宽松了?
4)创build/修改cron.allow(或cron.deny)后,cron是否需要重启?
PS ….自从首先发布这个在stackoverflow(我现在将删除它)我已经尝试重新启动cron无济于事:任务仍然不运行
正如Cornfed所说的,你的.php脚本必须以#!/ usr / bin / php开头才能工作。
1)cron.allow / deny文件只影响用户运行“crontab”命令的能力,而不是用户拥有crontab的能力。 见man crontab。
2)是的,也列在man crontab中。
3)是的,任何用户都可以将自己添加到该列表中。 这太宽松了。 但在大多数情况下,您不需要 Debian上的这个文件 。 从man crontab:“对于标准的Debian系统,所有的用户都可以使用这个命令。”
4)不,但我注意到延迟接受新的命令。 请参阅/ var / log / daemon(我认为)CRON更新它的内部文件。
你可以试试“15,30,45 * * * * / usr / bin / php /var/www/cron/test.cli.php”