最近做個項目需要用到一些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 腳本一般是在根目錄下