我是新手使用cron工作.我甚至不知道如何写它.我试图从互联网上搜索,但我仍然不太了解它.我想创建一个每分钟执行我的代码的cron作业.我正在使用PHP来创建它.它不起作用.
例
run.php (将每分钟执行的代码)
<?php
echo "This code will run every minute";
?>
Run Code Online (Sandbox Code Playgroud)
cron.php
<?php
$path = dirname(__FILE__);
$cron = $path . "/run.php";
echo exec("***** php -q ".$cron." &> /dev/null");
?>
Run Code Online (Sandbox Code Playgroud)
假设这两个文件在同一个文件夹中.
代码是我做错了吗?如果错了,请告诉我如何解决它.
Nik*_*nov 57
这是迄今为止我发现的PHP代码的最佳解释:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
简而言之:
虽然安排新工作的语法乍一看似乎令人生畏,但实际上,一旦你将其分解,它实际上相对简单易懂.一个cron作业将始终有五列,每列代表一个按时间顺序排列的"运算符",后跟完整路径和执行命令:
*****home/path/to/command/the_command.sh
每个时间顺序列与任务的时间表具有特定的相关性.它们如下:
Minutes represents the minutes of a given hour, 0-59 respectively.
Hours represents the hours of a given day, 0-23 respectively.
Days represents the days of a given month, 1-31 respectively.
Months represents the months of a given year, 1-12 respectively.
Day of the Week represents the day of the week, Sunday through Saturday, numerically, as 0-6 respectively.
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果一个人想在每个月的第一天安排一个任务,那么它看起来像这样:
0 0 1**home/path/to/command/the_command.sh
如果我们想安排一个任务在每个星期六上午8:30运行,我们会按如下方式编写:
30 8**6 home/path/to/command/the_command.sh
还有许多运营商可用于进一步定制日程安排:
Commas is used to create a comma separated list of values for any of the cron columns.
Dashes is used to specify a range of values.
Asterisksis used to specify 'all' or 'every' value
Run Code Online (Sandbox Code Playgroud)
请访问完整文章的链接,它解释说:
Ali*_*man 32
与尝试运行cron.php的方式相同,您可以运行另一个PHP脚本.但是,您必须通过CLI界面执行此操作.
#!/usr/bin/env php
<?php
# This file would be say, '/usr/local/bin/run.php'
// code
echo "this was run from CRON";
Run Code Online (Sandbox Code Playgroud)
然后,在crontab中添加一个条目:
* * * * * /usr/bin/php -f /usr/local/bin/run.php &> /dev/null
Run Code Online (Sandbox Code Playgroud)
如果run.php脚本具有可执行权限,则可以直接在crontab中列出,也可以不使用/ usr/bin/php部分.脚本中的'env php'部分将找到实际运行PHP代码的相应程序.因此,对于"可执行"版本,请向文件添加可执行权限:
chmod +x /usr/local/bin/run.php
Run Code Online (Sandbox Code Playgroud)
然后,将以下条目添加到crontab:
* * * * * /usr/local/bin/run.php &> /dev/null
Run Code Online (Sandbox Code Playgroud)
小智 11
添加到Alister,您可以通过在服务器上的ssh会话中输入crontab -e来编辑crontab(通常不是这种情况).
星星代表(*表示每个单位):
[Minute] [Hour] [Day] [Month] [Day of week (0 =sunday to 6 =saturday)] [Command]
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读更多相关信息.
小智 5
最好将Cron项目与 Linux cronjob 结合使用来完成此任务。它允许您在 PHP 代码中配置运行时间、支持后台作业并且易于使用。
第一步每分钟调用一个 PHP 脚本:
* * * * * /usr/local/bin/run.php &> /dev/null
Run Code Online (Sandbox Code Playgroud)
第二步使用cron/cron包直接在 PHP 中配置运行时间。
$deprecatedStatus = new ShellJob();
$deprecatedStatus->setCommand('cd /app && /usr/local/bin/php cron/updateDeprecatedStatus.php');
$deprecatedStatus->setSchedule(new CrontabSchedule('* * * * */2'));
$displayDate = new ShellJob();
$displayDate->setCommand('cd /app && /usr/local/bin/php cron/updateDisplayDate.php');
$displayDate->setSchedule(new CrontabSchedule('* * * * */5'));
Run Code Online (Sandbox Code Playgroud)
您在链接存储库中找到了如何使用的详细信息。
ram*_*610 -3
创建一个像这样的 cronjob 每分钟都工作
* * * * * /usr/bin/php path/to/cron.php &> /dev/null
Run Code Online (Sandbox Code Playgroud)