最近做个项目需要用到一些cli脚本进行执行,当时没想那么多,就进行了编写。后来放到linux执行总是有问题,然后一顿搜索,搜到一个是方法需要修改源代码,试了下,可以执行,在windows本地环境下可以,Linux下环境就不行了。这个坑只能再添了。最后发现人家thinkphp6提供了这个东西。只不过没注意
大致步骤如下
1.编写相应的commands命令,
1.输入php think make:command Hello hello
2.修改app\command\Hello
中execute
函数自己的逻辑代码
3.在config/console.php
注册命令.
<?php return [ 'commands' => [ 'hello' => 'app\command\Hello', ] ];
自己可以看手册,
2.在宝塔终端配置下定时任务
在宝塔面板创建一个定时任务,写入一段简单的定时shell脚本(注意修改成自己tp6网站根目录)
Path=/www/wwwroot/xxx.com
cd $Path
php think joke_update
完成.这里推荐使用宝塔,宝塔可以看到任务执行结果!
若没有安装宝塔,可以自己写个shell脚本,存为shell文件
#!/bin/bash
Path=/www/wwwroot/xxx.com
cd $Path
php think joke_update
然后在crontab,编写定时表达式,并执行上面的脚本内容即刻,操作上还是宝塔便捷.
或者说你自己编辑crotab 一般就是php路径 执行脚本的路径
例如在 /usr/local/bin/php,则 crontab -e 中可以这样写:(文件会越来越大)
1
|
* * * * *
/usr/local/bin/php
/path/yourapp/think
hello>>
/path/yourlog/hello
.log 2>&1
|
如果你想把日志分成每天来单独记录,可以这样写:
1
|
* * * * * /usr/local/bin/php /path/yourapp/think hello>>/path/yourlog/hello_`date -d
'today'
+\%Y-\%m-\%d`.log
2
>&
1
|
其实就是 找到 think 这个文件,然后执行命令。 /path/yourapp/think 命令 这个think 脚本一般是在根目录下