[英]How can I write a PHP cron script?
很抱歉,這是一個愚蠢的問題,但實際上我沒有任何線索。
我編寫了這個應用程序,用於將文件從客戶端PC壓縮和移動到主PC。
它可以很好地用作網頁。 這是唐,幾乎沒有指導,也沒有規范文檔。
因此,按照命運的安排,這應該是一項計划工作,可以通過致電
*****runScript.php
因此,我不知道執行將以或應以哪個順序進行。
我使用了2個AJAX調用來調用腳本中的方法,但是僅將文件作為腳本運行並沒有什么不同。
誰能指導我?
例如,是否有將首先調用的MAIN方法。 如果是這樣,那么我可以從那里指導腳本。
更新
答案確實可以幫助您解決所有問題,但是php文件將如何受到影響? @Ole Haugset提到我應該對其進行調整,因此請使用$_GET
vars。 例如,在腳本中已經通過if ($_GET["argument"]=='runScript'){}
了此操作。
因此,將runScript
附加到腳本調用應該可以正常工作嗎?
例如* * * * * php /path/to/file/runScript.php runScript
將PHP腳本作為cron作業運行沒有問題。 您需要做的是在文件系統中提供腳本文件的完整路徑,然后使用php
命令告訴Linux使用什么程序運行文件。
例:
*/5 * * * * php /var/www/vhosts/statistikk/cron/getLastArticleFromIntranet.cron.php >> /var/www/vhosts/statistikk/cron/LOG.txt 2> /dev/null
該腳本將在一周的所有天中每5分鍾運行一次。 不管PHP腳本回顯/打印出什么內容,都將存儲到LOG.txt
文件中,以便我可以監視腳本事件。
在將命令放入cronjobs中之前,請嘗試僅在外殼中運行該命令以確保其正常工作。
但是,您說通常使用AJAX調用來調用此腳本。 這將與cronjob無關。 我假設您使用AJAX傳遞腳本需要的一些$ _POST元素。 因此,您需要做的就是要么使腳本也允許$argv
參數,然后將它們添加到crontab作業中,要么干脆編寫一個不需要任何給定參數的腳本即可運行。
如果要修改腳本以支持$argv
參數,請遵循Stack Overflow中已經存在的關於向作業添加參數的答案:
編輯:
我只想從下面的答案中添加到我的答案中。 要在Linux中編輯crontab作業,您只需使用命令crontab -e
。
這是需要填寫的每個必需參數的描述。
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
要在Linux中添加cronjob,請執行以下操作:
#crontab -e如果vi是您的編輯器,請按i輸入文本,按esc退出。 使用:w保存更改,並使用:q退出。 如果nano是您選擇的編輯器,則使用strg + o進行保存,使用str + x進行關閉。
無論如何,將以下行添加到文件的正文中:* / 5 * * * * php runScript.php
每隔5分鍾就會調用一次。
* * * * * php /path/to/file/runScript.php
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday is 0 or 7)
│ │ │ └────── Month (1-12)
│ │ └──────── Day (1-31)
│ └────────── Hour (0-23)
└──────────── Minute (0-59)
應該就是這樣:)
從cron作業運行PHP腳本的常用方法是使用命令行程序,例如curl或wget。 例如,cron作業運行類似於以下命令的命令:
curl http://*****.com/script.php
在此命令中,curl檢索網頁,然后該網頁運行PHP腳本。
但是,有一種更好的方法可以通過cron作業在您的網站上運行PHP腳本。 您可以使用PHP命令行解釋器直接運行腳本。 這種方法同樣有效,通常更快。 以下命令顯示了如何使用PHP命令行解釋器運行腳本:
/usr/local/bin/php -q /home/username/public_html/script.php
在此示例中,PHP命令行解釋器運行script.php文件。 -q選項啟用安靜模式,該模式可防止顯示HTTP標頭。
根據PHP腳本中的代碼,僅當從特定目錄中調用時,它才能正確運行。 例如,如果腳本使用相對路徑包括文件,則只有從正確的目錄中調用腳本時,腳本才會運行。 以下命令顯示如何從特定目錄調用PHP腳本:
cd /home/username/public_html/; /usr/local/bin/php -q script.php
如果您的腳本需要特殊的配置選項,則可以使用自定義php.ini
文件。 -c
選項允許您使用自定義php.ini
文件調用PHP script
:
/usr/local/bin/php -c /home/username/php.ini /home/username/public_html/script.php
單擊此處以了解有關Cron PHP Script
示例的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.