微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos使用crontab定时执行php脚本


首先,找到PHP安装环境目录,

whereis PHP 得到目录:假设/opt/lampp/bin/PHP,记录下来


写好PHP脚本

require_once("/home/web/wxsq/config.PHP");
$link = MysqLi_connect($host,$user,$pwd,$dbname);
if (!$link){
	echo "Error: Unable to connect to MysqL." . PHP_EOL;
	echo "Debugging errno: " . MysqLi_connect_errno() . PHP_EOL;
	echo "Debugging error: " . MysqLi_connect_error() . PHP_EOL;

	die("Connection error: " . MysqLi_connect_error());
}
MysqLi_query($link,"set character set 'utf8'");//�
MysqLi_query($link,"set names 'utf8'");

// $sql="DELETE FROM  `weixin_flag` where  nickname = '李中坤'";
// MysqLi_query($link,$sql) or die(MysqLi_error($link));

$sql="DELETE FROM  `weixin_flag` where  nickname is null and content is null";
MysqLi_query($link,$sql) or die(MysqLi_error($link));
这里要注意:

尽量不要用require 和 include, 如果非要用,就要使用绝对路径,而且要保证require或include进来的PHP没有其他相对目录的引用

不要使用/**/这种注释


编辑crontab

centos 自带crontab。没有的话,要安装

crontab -e 进入编辑模式,点击i,可开始编辑


前面4行是第一次打开就有的,估计是其他定时启动服务,不用管它。

我们enter键另起一行,如图最后一行是我的脚本.

* * * * *5个星星大有学问,同学们可以自己查找使用方法认的5个星星就是每1分钟执行一次你配置的脚本。

/opt/lampp/bin/PHP 是你刚才记录的PHP环境目录

autoClearData.PHP是我写的脚本文件

>> /home/...../autoLog1.html 是autoClearData.PHP的log,这可以用来调试脚本。


crontab不需要重新启动,编辑完成保存好就生效了。

若已经编辑完成,按ESC,再shift+ZZ。完成了


2s频率的定时器自动执行一段小程序

我的需求是:每秒钟去判断数据库一个time是否过期,过期就要及时做出处理。

所以呢,crontab可以这么写

方案一:

* * * * * sleep(1) /opt/lampp/bin/PHP /home/web/funwall/xxxxx.PHP

* * * * * sleep(2) /opt/lampp/bin/PHP /home/web/funwall/xxxxx.PHP

........
........

* * * * * sleep(60) /opt/lampp/bin/PHP /home/web/funwall/xxxxx.PHP

这样就要写60次,当然你觉得ok,也可以这么写。但是一个优秀的程序员肯定是受不了这种写法的


方案二:

1,找个目录新建一个crontab.sh,假设我的在/home/web/funwall/crontab.sh

内容

step=2 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
    $(/opt/lampp/bin/PHP '/home/web/funwall/xxxxxx.PHP')
    sleep $step
done
exit 0 

2,crontab就这么写

* * * * * /home/web/funwall/crontab.sh


3,在xxxxxx.PHP写你的程序


这个看代码也知道怎么回事,* * * * * 是1分钟执行一次,而crontab.sh里是一分钟执行30次(可以改的)。


重要:请务必设置crontab.sh为可执行文件; chmod +x crontab.sh

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。