欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 >建站经验 >PHP > Thinkphp3.2在centos7上设置计划任务的方法

Thinkphp3.2在centos7上设置计划任务的方法

2019-05-31 92 收藏 0 赞一个 0 真差劲 0 去评论

在centos7可以利用crontab设置计划任务,centos7默认自带crontab可以直接使用,centos7计划任务的目录为:var/spool/cron/下的文件,下面是设置计划任务的方法:

创建入口程序

在项目的index.php同级目录下创建cron.php作为入口程序,文件内容如下:

<?php
#!/bin/env php
$cur_dir = dirname(__FILE__); 
chdir($cur_dir); 
define('MODE_NAME', 'cli');                    // 采用CLI运行模式运行
define('BIND_MODULE', 'Cron');
// 引入ThinkPHP入口文件
require './index.php';
?>

采用CLI运行模式运行运行此文件,并绑定计划任务模块,此例中绑定的模块为“Cron”模块,直接运行此文件会在Application下自动生成Cron模块(最好在配置文件中设置不可外部访问)

创建执行脚本

在Cron模块下的Controller中创建自己的计划任务脚本(和其他的模块一样可以自定义Controller类),该步骤不在分享示例代码,可以自己去创建

创建计划任务

创建好自己的计划任务脚本以后,最后就是创建计划任务了。

创建计划任务命令如下:

crontab -e

使用该命令会弹出编辑窗口(该命令类似vim模式)在编辑窗口中输入计划任务命令,代码如下:

#执行日志文件
0 1 * * * /usr/local/php/bin/php -q /home/wwwroot/web/cron.php Test/index

该命令的含义如下:

0 1 * * *:意思为每天凌晨1点开始执行

/usr/local/php/bin/php:php的安装目录

 备注:不同的安装程序php的安装目录不同,具体可参考安装程序说明,如使用lnmp一键安装包安装后的php目录为上面的目录

/home/wwwroot/web/cron.php Test/index:执行的thinkphp的脚本

 说明:/home/wwwroot/web/cron.php为创建的入口程序的绝对路径

Test/index:为绑定模块的TestController中的index方法

保存创建的计划任务文件,保存成功以后会在var/spool/cron/目录下生成一个计划任务文件(我的计划任务文件是root),如下图所示:

QQ截图20190531103642.jpg

启动计划任务

启动计划任务的命令如下:

systemctl enable crond (设为开机启动) 
systemctl start crond(启动crond服务) 
systemctl status crond (查看状态)

crontab 配置文件格式说明:

基本格式 :

*   *   *   *     *  command

分   时  日  月  周   命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

除了数字还有几个个特殊的符号就是”*”、”/”和”-“、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/apache restart  #每晚的21:30 重启apache 
45 4 1,10,22 * * /usr/local/etc/rc.d/apache restart  #每月1、10、22日的4 : 45重启apache 
10 1 * * 6,0 /usr/local/etc/rc.d/apache restart #每周六、周日的1 : 10重启apache  
0,30 18-23 * * * /usr/local/etc/rc.d/apache restart  #每天18 : 00至23 : 00之间每隔30分钟重启apache  
0 23 * * 6 /usr/local/etc/rc.d/apache restart  #每星期六的11 : 00 pm重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/apache restart  #晚上11点到早上7点之间,每隔一小时重启  apache
* */1 * * * /usr/local/etc/rc.d/apache restart  #每一小时重启apache   
0 11 4 * mon-wed /usr/local/etc/rc.d/apache restart #每月的4号与每周一到周三的11点重启apache   
0 4 1 jan * /usr/local/etc/rc.d/apache restart  #一月一号的4点重启apache  
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44  #每半小时同步一下时间 
0 */2 * * * www /usr/bin/somecommand  >>  /dev/null 2>&1 #以用户www的身份每两小时就运行某个程序:

其他任务调度

cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab

将需要执行的脚本放到相应的目录下即可,目录分别为:

/etc/cron.hourly

/etc/cron.daily

/etc/cron.weekly

/ect/cron.mouthly

cron 的主配置文件是 /etc/crontab,它包括下面几行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

希望本篇文章能够帮助到你!

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站所有资源(包括模板、素材、软件、字体等)仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论
分享是个好习惯