centos php计划任务,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),如下图所示:

c06e5ecbe2eda6f6cbd75cdcdb006c7e.png

启动计划任务

启动计划任务的命令如下: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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值