我有php函数,每隔15分钟运行一次。我发现了一些类似这样的问题:如何在php中运行cron作业
,并在我的情况,我应该使用这样的:
*/15 * * * * /usr/local/bin/php -q /path/to/my/file.p
但我应该在终端运行此命令,把它放在我的档案?一旦它被执行,它会一直运行还是会有时间限制?
谢谢!
我有php函数,每隔15分钟运行一次。我发现了一些类似这样的问题:如何在php中运行cron作业
,并在我的情况,我应该使用这样的:
*/15 * * * * /usr/local/bin/php -q /path/to/my/file.p
但我应该在终端运行此命令,把它放在我的档案?一旦它被执行,它会一直运行还是会有时间限制?
谢谢!
10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1
有两个主要部分:
第一部分是 “10 * * * *”。这是我们安排计时器的地方。 该行的其余部分是从命令行运行的命令。 本例中的命令本身有三个部分:
“/ usr/bin/php”。 PHP脚本通常不能自行执行。因此我们需要通过PHP解析器运行它。 “/www/virtual/username/cron.php”。这只是脚本的路径。 “>/dev/null 2> & 1”。这部分处理脚本的输出。稍后再说。
请仔细阅读本教程http://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs--net-8800
谢谢你的回答!所以,我应该运行这个命令:'crontab -e',然后在控制台中运行:'15 * * * */usr/bin/php /path/to/my/file.php>/dev/null 2>&1 '然后运行:'crontab -l'。是对的吗?我的/ file.php中的脚本每15分钟运行一次? –
PHP不运行cron作业,你的服务器(或操作系统)是这样做的。有两种方法可以把你的cron作业工作:
使用shell命令crontab
。命令crontab -l
将列出您的用户的所有现有cronjobs(最有可能还没有)。 crontab -e
将打开一个编辑器窗口,您可以在其中添加一个cron作业作为新行。保存并且您的cron作业正在运行。 crontab -l
再次,你会看到它聆听。 crontab -r
删除所有cont工作。
您也可以从文件启动cron作业。只需键入crontab filename
(例如,crontab textfile.txt
)
或者,您也可以从PHP中启动它。只要把你的cron作业到一个文件并启动它通过exec()
像这样:
file_put_contents('textfile.txt', '*/15 * * * * /usr/local/bin/php -q /path/to/my/file.php');
exec('crontab textfile.txt');
如果您拥有管理员权限的系统上,你可以在/etc/cron.d/
创建一个文件(例如,称它为my_cronjob
)并将您的cron作业放在那里。在这种情况下,您可能希望以用户身份运行它(而不是管理员,这样会比较不安全)。这是很容易做到,只需添加用户名像这样:
*/15 * * * * user_name /usr/local/bin/php -q /path/to/my/file.p
(在这种情况下,cron作业将不会被crontab -l
下发EMAIL:[email protected])
回答你的第二个问题:只要cron作业在crontab -l
中进行侦听,或者只要文件位于/etc/cron.d
中,cron作业就会以每15分钟的速度运行。
感谢您的回答!如果我使用'<?php crontab script.txt',我应该把它放在script.txt文件中吗?它会执行我的文件script.txt?如果我使用'file_put_contents('script.txt','*/15 * * * */usr/local/bin/php -q /path/to/my/file.p'); exec('crontab script.txt');'我应该把它放在header.php文件还是在哪里?谢谢! –
@mistery_girl通常你会启动一个cron作业,然后让它运行,所以'header.php'不是一个好地方。创建一个新的PHP文件,您只需手动调用一次(意思是:将其URL直接输入到地址栏中),以启动cron作业。 'file_put_contents'将在服务器上创建一个文件,'exec('crontab file');'然后将它作为cron作业添加。使用'<?php crontab script.txt'将不起作用。 – antix
我可以使用:'file_put_contents('script.php','*/15 * * * */usr/local/bin/php -q /script.php'); exec('crontab script.php');' - 要成为同一个文件 - crob作业和我的php代码? –
编辑crontab? – frz3993
我是新来的cron工作..请你解释一下吗? –
在linux发行版中,在终端输入“crontab -e”进行编辑。你在哪里放线。 'crontab -l'来查看作业。 – frz3993