服務器上定時自動執行php


兩種方式:

一、Linux 服務器
Linux原生支持crontab,所以可以利用這一功能做定時任務

步驟:

1、編輯crontab文件:
Linux:crontab -e

2、輸入代碼:
0 0 * * 6 /etc/init.d/httpd restart && /etc/init.d/mysqld restart
    代碼解釋:每周六0點自動重啟apache和mysql,第一項(前面5位)是時間設置,具體格式百度之,不贅述,下同;
    第二項是apache所在目錄,
    第三項上執行具體方法,
    后面的&&可以連寫,也可以刪除&&后,換行,即也可以這么寫:
0 0 * * 6 /etc/init.d/httpd restart
0 0 * * 6 /etc/init.d/mysqld restart

0 9 * * * /usr/bin/curl http://www.website.com/Index/test
    代碼解釋:每天上午9點自動執行一次http://www.website.com/Index/test方法
    第二項代表curl所在目錄,
    第三項代表所要執行的url
    (若要執行PHP文件,與此格式類似,具體百度之。。)

esc
:wq 保存

二、Windows服務器:
Windows服務器可以利用系統的計划任務實現

步驟:

1、創建一個bat批處理文件,如:
D:\xampp\php\php.exe -q D:\xampp\htdocs\test.php
保存為test.bat,第一項為php.exe所在目錄,第二項為需要執行的php文件路徑

2、test.php文件寫入:
<?php
file_put_contents('test.txt',date('Y-m-d H:i:s')." success!\r\n",FILE_APPEND);
?>
此僅為測試用,具體代碼可自行編寫(本例是只要執行test.bat,就調用test.php,往test.txt里面寫入一段字符串)

3、設置系統計划任務,定時執行test.bat

 

4、不通過php文件所在路徑,而是用網址呢,windows下新建test.bat,添加內容如下:

@echo off
  rem 關閉回顯
  start "C:\Program Files\Internet Explorer\iexplore.exe" "http://www.abc.com/test.php"
  rem 使用瀏覽器打開url地址,5秒后自動關閉ie
  ping 127.0.0.1 -n 5 >nul
  taskkill /im iexplore.exe /f

放在windows計划任務里執行

用PhantomJS或者類似的東西替代瀏覽器,消耗應該會很小


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM