TP5 用cron实现linux定时任务

  1) tp5的控制器内容:

namespace app\test\controller;

use think\Controller;
use think\facade\Log; class Test extends Controller{ public function testCrontab(){     // 定时执行的代码。。。 开始
Log::error('start test crond demo.....');
Log::error('end test crond demo.....');
    // 定时执行的代码。。。 结束
}
}

  2) 新建文件:crontab.sh,写入以下内容,并放在项目的根目录,(如果是TP5,与public目录平级)

#!/bin/bash
/server/php-5.6.38/bin/php /project/test_project/public/index.php test/test/testCrontab

  说明:public为tp5的执行目录,test/test/testCrontab为:模块/控制器/操作

  3). linux后台,输入 crontab -e,写入以下内容(第一个sh后面的路径为第2步的crontab.sh的全路径),写入的内容将生成一个文件,自动保存为/var/spool/cron/root文件,root为当前linux登录的用户名。

*/1 * * * * sh /[项目根目录]/crontab.sh

  说明: 前面5个星意义:

基本格式 : 
*  *  *  *  *  command 
分 时 日 月 周 命令 
第1列表示分钟1~59 每分钟用*或者 */1表示 
第2列表示小时1~23(0表示0点) 
第3列表示日期1~31 
第4列表示月份1~12 
第5列标识号星期0~6(0表示星期天) 
第6列要运行的命令

  4)重启crond服务

service crond restart

  说明:crontab -l  可以查看当前的定时任务。 

 5) 经过以上配置,上述TP5的控制器内的操作1分钟将会执行一次。

public function testCrontab(){

    // 定时执行的代码。。。 开始
Log::error('start test crond demo.....'); Log::error('end test crond demo.....');
    // 定时执行的代码。。。 结束
}
05-13 06:00