在cron中添加php脚本以便从php安排任务?

时间:2010-04-19 10:40:51

标签: php cron web-hosting

有没有办法在cron中添加php脚本(文件),以便每十分钟或在预定时间运行此脚本?

因为我希望用户能够安排何时向他选择的很多电子邮件发送简报。

所以我必须从php创建一个cron作业,以便在预定的时间运行一个php文件。

如果你有一个共享的网络托管环境(不是vps)

,这是可能的

3 个答案:

答案 0 :(得分:2)

如果您的脚本文件名是news.php并且在/home/user/news.php中 crontab线似乎是:

* * * * * php /home/user/news.php

如果你想在每一分钟都不要运行它。 你可以用左(m,h,dom,mon,dow)

编辑*

但如果只有你有相同的网络托管,你就无法做到这一点, 您必须有权访问shell或其他配置方式 您的crobtab文件(可能来自您的提供商访问面板)

但您可以通过http协议上的apache在其他服务器上运行crontab作业以运行您的news.php 。在此选项中,远程服务器上的crontab作业必须由Web运行您的脚本。例如。 wget是一个不错的选择:

* * * * * wget http://www.yourdomain.com/dir/news.php

答案 1 :(得分:1)

我的建议是 不要 允许Apache调用的PHP脚本来改变cron。那是在它上面写的灾难。通常,cron设置为需要root权限。这可以改变,但重点是,如果你的网站被黑客入侵,给攻击者修改你的cron的能力真的很糟糕。

更重要的是,这不是必要的。你所做的只是选择一些粒度,比如每分钟或5分钟或10分钟。您告诉用户他们可以将其安排到该级别。给他们一些选择,从每个月到每5分钟。无论他们选择什么,都将其写入数据库。

然后每隔1,5或10分钟运行一个不同的PHP脚本(无论最小粒度是多少),并让它查看数据库以查看是否有任何可以运行,执行或发送的内容。

答案 2 :(得分:1)

Yup这是可能的,但在共享主机上它会影响您和该主机上的其他网站。

因此,如果cron不经常调用你的文件,那么可以将cron放在共享主机上,但是如果你必须经常调用它,那么这是不可取的,你也可以被你的提供者抛弃,因为没有人想要由于其他网站,网站表现不佳。

相关问题