6

我以前从未使用过 CRON,但我想使用 CRON 以便能够为 php 脚本执行计划作业。php 脚本称为“inactivesession.php”,在 php 脚本中是以下代码:

<?php

include('connect.php');


$createDate = mktime(0,0,0,10,25,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));

$sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?";                                         
$update = $mysqli->prepare($sql);
$update->bind_param("is", 0, $selectedDate);
$update->execute();

?>

我想做的是,当达到上述日期(10 月 25 日)时,我希望 php 脚本执行上面的 UPDATE 语句。但我的问题是我如何使用 CRON 来做到这一点?

我正在使用的服务器是大学的服务器,称为 helios,是否需要在 helios 中设置 CRON,(我是否必须为此打电话给管理员)或者是其他使用 CRON 的服务器。

我以前从未使用过 CRON,所以你能向我解释一下如何使用我正在使用的服务器为上面的示例设置 CRON 吗?

谢谢

4

1 回答 1

3

方法一:使用 crontab 中的 php 执行脚本

就像调用 shell 脚本(如我们的 crontab 15 示例文章中所示)一样,使用 php 可执行文件,并从 crontab 调用 php 脚本,如下所示。

要每 1 小时执行一次 myscript.php,请执行以下操作:

crontab -e

00 * * * * /usr/local/bin/php /home/john/myscript.php

方法 2:使用 crontab 中的 URL 运行 php 脚本

如果您的 php 脚本可以使用 URL 调用,您可以使用 lynx、curl 或 wget 来设置您的 crontab,如下所示。

以下脚本通过使用 lynx 文本浏览器调用 URL 来执行 php 脚本(每小时)。Lynx 文本浏览器默认以交互模式打开一个 URL。但是,如下所示,lynx 命令中的 -dump 选项会将 URL 的输出转储到标准输出。

00 * * * * lynx -dump http://www.thegeekstuff.com/myscript.php

以下脚本通过使用 CURL 调用 URL 来执行 php 脚本(每 5 分钟一次)。Curl 默认在标准输出中显示输出。使用“curl -o”选项,您还可以将脚本的输出转储到临时文件,如下所示。

*/5 * * * * /usr/bin/curl -o temp.txt http://www.thegeekstuff.com/myscript.php

以下脚本通过使用 WGET 调用 URL 来执行 php 脚本(每 10 分钟一次)。-q 选项表示相当模式。“-O temp.txt”表示将输出发送到临时文件。

*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.thegeekstuff.com/myscript.php
于 2012-10-24T21:01:03.890 回答