如何每天执行一个php脚本[重复]。

问题描述 投票:2回答:2

可能是重复的。 在Ubuntu上为php执行的Cron任务

我正在运行ubuntu服务器,想每天运行一个php脚本。我做了一些研究,发现cron是最好的方法,但是,这也是我被卡住的地方,网上很多关于cron的信息都很难理解,所以我想每天执行一次简单的php脚本。

所以我想每天执行一次简单的php脚本,我做的测试脚本只是简单地从数据库中删除一条记录,但真正的脚本会做得更多。

我试着通过我的主机服务提供的plesk设置了一个任务,但它似乎不是在我想要的时候执行的,我用1代表分钟,22代表小时,*代表一天,*代表一周,*代表一个月,并认为这将在每天22:01执行。

我的服务器上有以下目录:cron.hourlycron.dailycron.weeklycron.monthly。

我想我可以把我的文件放在那里,然后每天都会执行,但我想我需要做一个cron脚本来调用一个php脚本,对吗?

如果我把一个文件放在cron.daily文件夹里,我该怎么做?

另外,如果我在php方面有什么需要采取的步骤,请告诉我?

非常感谢你的时间。

cron ubuntu-server
2个回答
8
投票

有几种方法可以设置cron工作。假设你有shell权限,你可以做 crontab -e 并在那里定义job,即像这样。

1 22 * * * command

这样就会触发 command (不管它是什么)每天22:01(不知道为什么你把分钟设置为 1 而不是 0 不过)。) 要想从那里启动PHP脚本,你必须先安装 php-cli然后用这种方式调用它。

1 22 * * * <path>/php -q script.php

你也可以在这里调用bash脚本,设置所有的东西,比如路径等,然后在bash中调用你的php脚本--有时这样做更简单,而不是为cron编写太长的命令行。另外,你也可以通过设置执行位来把你的php脚本变成bash可运行的脚本 (chmod a+x script.php)并添加shell的shebang。

#!/usr/bin/php -q
<?php
   ...

如果你的脚本有太多的依赖关系 而你又想通过web调用它,你可以使用 wget 以模仿浏览器,所以你的 command 将是。

/usr/bin/wget --delete-after --quiet --spider <URL-TO-YOUR-SCRIPT>

wget手册可以通过 man wgetwget -h或者是 在本网站. 或者你可以使用 HEAD 工具从 perl-www 包 - 但它需要 perl,而 wget 是一个独立的工具。如果你使用HTTPS和自签名的证书,请在其中添加 --no-check-certificate 到你的调用参数。而且你可能还想设置 .htaccess 并将您的cron脚本的网络访问限制在localhost127.0.0.1上。


3
投票

每分钟。

* * * * * /path/script.php

每24小时(每午夜)。

0 0 * * * /path/script.php

关于crontab的工作原理,请参考以下内容。http:/adminschoice.comcrontab-quick-reference。以及这个方便的工具来构建cron jobx。http:/www.htmlbasix.comcrontab.shtml

© www.soinside.com 2019 - 2024. All rights reserved.