【问题标题】:How to run a php script using cron?如何使用 cron 运行 php 脚本?
【发布时间】:2017-01-18 01:31:00
【问题描述】:

我试图每小时运行一个脚本来检查文件是否已更改,如果已更改,则它会发送一封电子邮件。所以我在另一篇帖子 (PHP - Email notification whenever a remote file changes) 中发现:

$url='http://media1.clubpenguin.com/play/en/web_service/game_configs/paper_items.json';
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$execute = curl_exec($ch);

$fp=fopen('old.json','w+');
$oldjson=fread($fp,filesize('old.json'));

if($execute!=$oldjson){
 mail('your@mail.com','Yoohoo', 'File changed');
 fputs($fp,$execute);
}
fclose($fp);

并将两个文件(空白的 old.json 和 scriptTestForCron.php)放在我的 cron.hourly 文件夹中。我将示例中给出的 url 更改为要查看是否已更改的文件的文件路径,以及邮件信息。问题是它没有通知我它失败了,也没有发送电子邮件,所以我不知道它是否真的运行了。有什么办法可以查吗?还有什么原因它目前无法正常工作?

我试图更改我的 crontab 文件以运行它并将日志发送到特定文件,但还没有收到任何东西。

# run-parts
15 * * * * root run-parts /etc/cron.hourly

# php
1 * * * * php /etc/cron.hourly/scriptTestForCron.php >> /var/log/testLog

这两行中的哪一行不应该运行脚本文件吗?

【问题讨论】:

  • 你能告诉我们更多细节吗?向我们展示你如何定义 cron 等?
  • 还要检查您的系统日志文件,cron 会记录其活动和结果除非您特别禁止...
  • 上面的代码在一个名为 scriptTestForCron.php 的文件中,我把它放在了我的 cron.hourly 文件夹中。在我的 crontab 文件中声明:# run-parts 15 * * * * root run-parts /etc/cron.hourly 是你的意思吗?

标签: php email cron


【解决方案1】:

如何使用 cron 运行 php 脚本?

在 linux 上创建一个crontab 条目,crontab -e

* 24/1 * * * php /path/to/script.php >> /path/to/logfile.log 2>&1
  • /path/to/logfile.log 包含脚本中的所有消息/错误

【讨论】:

  • 所以你的意思是不要把文件放在我的 cron.daily 中,而是在我的 crontab 中为它创建自己的时间安排?
  • @Eric cron.daily 每天每小时运行一次吗?我在 cronjobs 上工作了很多,我只在 linux 下使用 crontab 函数。而且效果很好。
  • 对不起,我的意思是输入 cron.hourly 我相信每 15 分钟运行一次 cron.hourly,因为 crontab 文件指出:# run-parts 15 * * * * root run-parts /etc /cron.hourly
  • 我认为我不应该将它添加到 cron.hourly 中,因为它正在执行其他操作并发送到日志中,我是否应该在“#run-parts”下创建一个单独的条目并放入你说什么?
猜你喜欢
  • 2012-06-27
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2010-10-16
  • 2012-06-03
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多