如何使用 php 设置 crontab?
我需要从 php 脚本设置一个 crontab。我知道它可以通过设置
system("echo '* * * * * echo \"Hello world\"' >> cron.crontab"); 系统(“crontab cron.crontab”); //cron.crontab是crontab的文件名
在根目录下创建了“cron.crontab”文件,但是crontab没有按预期工作!当我尝试以下命令时,它说没有设置 crontab!
crontab -l
我想我错过了一些东西。我正在使用 yii 框架。 yii 框架中有处理 cron 的扩展吗?还有其他方法吗?请帮我。谢谢。
i need to set a crontab from a php script. i know that it can be set by
system("echo '* * * * * echo \"Hello world\"' >> cron.crontab");
system("crontab cron.crontab"); //cron.crontab is the file name of the crontab
"cron.crontab" file is created in root directory, but crontab is not working as expected! when i try the following command, it says that no crontab is set!
crontab -l
i think i am missing something. i am using yii framework. is there an extension to handle cron in yii framework? is there any other way to do it? Please help me. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您是否以与运行 Web 服务器的用户相同的用户身份运行 crontab -l ?否则你将看不到它的 cronjobs。
Are you running
crontab -l
as the same user as the web server is running under? Otherwise you won't see its cronjobs.Apache 一般不会乱搞主 crontab。但是,每个用户也有一个 crontab,并且上面的代码很可能正在设置 apache 的 crontab(或您的站点运行的任何用户的 crontab)。
尝试 crontab -u apache -l ,或将 apache 替换为您的站点运行的任何用户,并查看您设置的条目是否存在。
Apache generally isn't going to be able to muck around with the main crontab. However, each user has a crontab as well, and it's quite likely that your code above is setting
apache
's crontab (or the crontab for whatever user your site runs as).Try
crontab -u apache -l
, or replaceapache
with whatever user your site runs as, and see if the entries you set are there.通常你必须是 root 才能设置 crontab,这与 php 以 root 身份运行不同,在这种情况下你就不走运了。
编辑:并非完全不走运。请参阅上面塞巴斯蒂安评论中的链接。
You generally have to be root to set the crontab, and it's unlike that php is running as root, in which case you're out of luck.
Edit: Not completely out of luck. See the link in Sebastian's comment above.