可能是重复的。 在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工作。假设你有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 wget
或 wget -h
或者是 在本网站. 或者你可以使用 HEAD
工具从 perl-www
包 - 但它需要 perl,而 wget 是一个独立的工具。如果你使用HTTPS和自签名的证书,请在其中添加 --no-check-certificate
到你的调用参数。而且你可能还想设置 .htaccess
并将您的cron脚本的网络访问限制在localhost127.0.0.1上。
每分钟。
* * * * * /path/script.php
每24小时(每午夜)。
0 0 * * * /path/script.php
关于crontab的工作原理,请参考以下内容。http:/adminschoice.comcrontab-quick-reference。以及这个方便的工具来构建cron jobx。http:/www.htmlbasix.comcrontab.shtml