新聞中心
本文操作環(huán)境:linux5.9.8系統(tǒng)、php7.1版、Dell G3電腦。

創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計制作的專業(yè)網(wǎng)站建設(shè)公司,擁有經(jīng)驗豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨特的設(shè)計風(fēng)格。自公司成立以來曾獨立設(shè)計制作的站點上千多家。
php做不到每天定時執(zhí)行,只有java或者c可以,因為php是不訪問頁面就不會動得代碼,但是有一個方法可以曲線救國
你寫一個頁面是你要每天定時執(zhí)行的頁面,然后視你的操作系統(tǒng)而言,做定時任務(wù),定時去訪問這個頁面。本文以linux系統(tǒng)為例。
PHP實現(xiàn)執(zhí)行定時任務(wù)
首先用命令檢查服務(wù)是否在運行
systemctl status crond.service
如果服務(wù)器上沒有裝有crontab ,則可以執(zhí)行
yum install vixie-cron yum install crontabs
常用指令
systemctl restart crond.service #啟動服務(wù) systemctl reload crond.service #重新載入配置 systemctl status crond.service #查看crontab服務(wù)狀態(tài) systemctl enable crond.service #開機(jī)自啟動
啟動服務(wù)之后可以輸入指令(按i進(jìn)行編輯)
crontab -u root -e #進(jìn)入定時任務(wù)編輯
查看crontab定時執(zhí)行任務(wù)列表
crontab -l
相關(guān)參數(shù)
基本格式 : * * * * * command 分 時 日 月 周 命令 第1列表示分鐘1~59 每分鐘用*或者 */1表示?。糠昼娪没蛘?*/1表示,/n表示每n分鐘,例如*/8就是每8分鐘的意思,下面也是類推) 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標(biāo)識號星期0~6(0表示星期天) 第6列要運行的命令
查看動態(tài)日志(如果出現(xiàn)很多mailed 33 bytes of output bu get status 0x004b#012請移步:https://bbs.aliyun.com/simple/t135851.html):
tail -f /var/log/cron
例子
*/2 * * * * curl -o /home/index.html www.baidu.com #每隔兩分鐘使用curl 訪問www.baidu.com 并將結(jié)果寫入/home/index.html 文件
00 * * * * lynx -dump https://www.yourdomain.com/script.php #當(dāng)前時間的分鐘數(shù)為00時,執(zhí)行該定時任務(wù)
lynx -dump https://www.yourdomain.com/script.php #通過lynx訪問這個url。我們在使用中主要用到lynx、curl、wget來實現(xiàn)對url的遠(yuǎn)程訪問,而如果要提高效率,直接用php去執(zhí)行本地php文件是最佳選擇
00 */2 * * * /usr/bin/php /home/www/script.php #直接用php去執(zhí)行本地php文件
這條語句就可以在每2小時的0分鐘,通過linux內(nèi)部php環(huán)境執(zhí)行script.php,注意,這里可不是通過url訪問,通過服務(wù)器環(huán)境來執(zhí)行哦,而是直接執(zhí)行,因為繞過了服務(wù)器環(huán)境,所以效率當(dāng)然要高很多。
至于為什么要用/usr/bin/php可以使用命令:which php 或者 whereis php 查看
在crontab里面,將執(zhí)行的結(jié)果輸出一個文件當(dāng)中。然后在這個文件當(dāng)中查看執(zhí)行情況。例如:
*/1 * * * * /usr/bin/php /data/dou/web/api/cron.php >> /data/dou/web/cron.txt
連續(xù)執(zhí)行命令:
按順序依次執(zhí)行(通過`;`分隔)
cmd1; cmd2; cmd3;
按邏輯與執(zhí)行(&&分隔)
cmd1&&cmd2&&cmd3; cmd4;
按邏輯或執(zhí)行:(||分隔)
cmd1||cmd2||cmd3; cmd4;
即回傳值為0時邏輯與繼續(xù)執(zhí)行下去,回傳值不為0時邏輯或繼續(xù)執(zhí)行,跟平時程序的邏輯與跟邏輯或短路一樣(`?`為回傳值,命令執(zhí)行正確時回傳值為0 通過echo $?可以試驗,具體搜"回傳")
組合:
cmd1;
cmd2||cmd3&&cmd4;
cmd5;
先執(zhí)行cmd1然后執(zhí)行cmd2,如果cmd2回傳值非0則執(zhí)行cmd3,如果cmd3回傳值為0則執(zhí)行cmd4,然后繼續(xù)按順序執(zhí)行
時間設(shè)定規(guī)則示例:
1.每分鐘定時執(zhí)行一次規(guī)則:
每1分鐘執(zhí)行: */1 * * * *或者* * * * *
每5分鐘執(zhí)行: */5 * * * *
2.每小時定時執(zhí)行一次規(guī)則:
每小時執(zhí)行: 0 * * * *或者0 */1 * * *
每天上午7點執(zhí)行:0 7 * * *
每天上午7點10分執(zhí)行:10 7 * * *
3.每天定時執(zhí)行一次規(guī)則:
每天執(zhí)行 0 0 * * *
4.每周定時執(zhí)行一次規(guī)則:
每周執(zhí)行 0 0 * * 0
5.每月定時執(zhí)行一次規(guī)則:
每月執(zhí)行 0 0 1 * *
6.每年定時執(zhí)行一次規(guī)則:
每年執(zhí)行 0 0 1 1 *
7.其他例子
5 * * * * 指定每小時的第5分鐘執(zhí)行一次ls命令
30 5 * * * ls 指定每天的 5:30 執(zhí)行l(wèi)s命令
30 7 8 * * ls 指定每月8號的7:30分執(zhí)行l(wèi)s命令
30 5 8 6 * ls 指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30 6 * * 0 ls 指定每星期日的6:30執(zhí)行l(wèi)s命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執(zhí)行l(wèi)s命令[注:“,”用來連接多個不連續(xù)的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執(zhí)行l(wèi)s命令[注:“-”用來連接連續(xù)的時段]
*/15 * * * * ls 每15分鐘執(zhí)行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執(zhí)行l(wèi)s命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執(zhí)行一次ls命令[即每月的1、11、21、31日是的6:30執(zhí)行一次ls命令。 ]
文章題目:php怎么實現(xiàn)每天自動運行
本文URL:http://www.5511xx.com/article/dhijphg.html


咨詢
建站咨詢
