Thinkphp3.2在centos7上设置计划任务的方法
在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),如下图所示:
启动计划任务
启动计划任务的命令如下:
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
- 1CSS控制文字在Div最底部显示
- 2Thinkphp5如何配置IP+端口访问项目模块
- 3elementUI el-dialog弹框居中
- 4教你如何搭建及优化站点
- 5国内互联网视频行业运营分析
- 6记一次Thinkphp5.1框架mysql数据库崩溃(SQLSTATE [08004] Too many connections)
- 7CSS实现悬浮顶部的Div工具栏
- 8service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 9连接SQL Server数据库提示:Login failed for user 'sa'错误的解决方案
- 10Thinkphp3.2在centos7上设置计划任务的方法