使用crontab每分钟执行脚本,每24小时执行一次[关闭]


316

我需要一个crontab语法,该语法应/var/www/html/a.php每分钟执行一个特定的PHP脚本。每分钟的执行必须从00:00开始。另一个必须在00:00 /var/www/html/reset.php(每24小时一次)执行脚本的任务。

Answers:


586

每一分钟:

* * * * * /path/to/php /var/www/html/a.php

每24小时(每午夜):

0 0 * * * /path/to/php /var/www/html/reset.php

请参阅如何工作的crontab此引用:http://adminschoice.com/crontab-quick-reference,这方便的工具来构建的cron jobx:http://www.htmlbasix.com/crontab.shtml


3
亲爱的扬!好答案。每30秒运行一次cron怎么样?这样吗 * * * * * / 30 / path / to / php /var/www/html/a.php吗?
flaab 2012年

26
不幸的是,您不能比每分钟更频繁地运行cron作业。您必须为此使用其他方式。
JanHančič'12

9
JanHančič,您可以执行此操作。您只需要使用此处描述的简单技巧即可:stackoverflow.com/a/1034304/1580615
Ruben

用cron每分钟执行.php脚本是否正常?会降低服务器生产力吗?还有其他不良副作用吗?
安德鲁

@flaab每30秒可以尝试执行以下操作:-* * * * * curl --silent URL> / dev / null 2>&1 ** * * * sleep 30; curl --silent URL> / dev / null 2>&1
Shashank Shah

375

这是/ etc / crontab的格式:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

我建议将其复制并粘贴到crontab文件的顶部,以便始终可以随时使用参考。RedHat系统默认情况下以这种方式设置。

每分钟运行一次:

* * * * * username /var/www/html/a.php

要在每天的午夜运行一些东西:

0 0 * * * username /var/www/html/reset.php

您可以在要运行的命令中包含/ usr / bin / php,也可以使php脚本直接可执行:

chmod +x file.php

用shebang启动您的php文件,以便您的shell知道要使用哪个解释器:

#!/usr/bin/php
<?php
// your code here

42
这是的格式/etc/crontab,这是系统 crontab文件。一个用户的crontab中有不同的格式,其中不包括用户名字段,因为它会作为其提交谁的用户。如果要以非root用户身份运行cron作业,则应使用crontab命令来提交它(而不用担心crontab的存储位置)。/etc/crontab除非您确实需要,否则不要胡闹。
基思·汤普森

嗯...不,仍然无法正常工作
Madeo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.