你如何设置cron任务?

use*_*760 6 cron

我之前从未使用过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();

?>
Run Code Online (Sandbox Code Playgroud)

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

我使用的服务器是大学的服务器,称为helios,是否需要在helios中设置CRON,(我必须为此调用管理员)还是使用CRON的其他服务器.

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

谢谢

小智 3

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

\n\n

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

\n\n

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

\n\n

crontab -e

\n\n
00 * * * * /usr/local/bin/php /home/john/myscript.php\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n

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

\n\n
00 * * * * lynx -dump http://www.thegeekstuff.com/myscript.php\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
*/5 * * * * /usr/bin/curl -o temp.txt http://www.thegeekstuff.com/myscript.php\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
*/10 * * * * /usr/bin/wget -q -O temp.txt http://www.thegeekstuff.com/myscript.php\n
Run Code Online (Sandbox Code Playgroud)\n