這可能是一個愚蠢的問題,但能夠做到這一點非常棒。我在我的網站上有一個自定義的管理部分。我有一個cron作業設置爲每天運行一次這個文件/opt/webalizerScript.sh但是,我希望能夠隨時從我的管理部分執行該命令,我希望從webalizer獲得全新的流量統計信息。我不想編輯cron,因爲我不打算經常手動執行該腳本,並且每天一次對於自動化目的而言是很好的。當然,我知道我可以在shell中執行腳本,但是這會否定我正在嘗試執行的全部目的。有沒有辦法通過點擊網頁上的鏈接來執行bash命令腳本?
回答
雖然Amadan的回答是一個很好的概述,但我想我會放入一個簡單的PHP腳本作爲示範。該腳本假定bash將是您的Web服務器的默認外殼。
demo.php運行「LS -alFh」,但你可以代替任何命令
<html>
<head>
<title>Output of my bash script</title>
</head>
<body>
<h1>Output of my bash script</h1>
<pre>
<?php system("ls -alFh", $rc); ?>
</pre>
<br>
<?php echo "Return Code: {$rc}\n"; ?>
</body>
</html>
太棒了......謝謝!有沒有一種方法可以在頁面上進行冗長的處理,以便我可以像在shell中一樣查看它的發生?這就是爲什麼我有:'<?php system(「/ opt/webalizerScript.sh」,$ rc); 「它完美無缺,但腳本需要一些時間來處理,能夠觀看它的過程會很棒。 – Garry 2012-08-02 02:30:45
它只能輸出你的腳本輸出的內容。你的腳本是否會採用--verbose或其他的?在命令字符串的末尾添加任何額外的參數,就像在提示符處鍵入它一樣。你可以添加一些東西來顯示它的進度(如echo命令)嗎? system()將逐行刷新輸出行。見http://php.net/manual/en/function.system.php – walrii 2012-08-02 02:44:38
它沒有。只是有一堆這些行,每行更新我服務器上每個網站的webalizer統計信息。以下是第一行的示例:'#!/ bin/sh webalizer -n clarksvillecomputers.com -o /var/www/clarksvillecomputers.com/public_html/webalizer/var/www/clarksvillecomputers.com/logs/access。日誌 ' – Garry 2012-08-02 02:49:06
執行腳本作爲對HTTP請求的響應是CGI的定義。
您的腳本將收到一些環境變量以反映請求的細節和一些標準輸入。最後,無論它輸出什麼都會發送給客戶端。您必須輸出Content-Type: text-plain
(或其他內容類型),然後在開始處輸入空白行。
調查配置您的網絡服務器爲服務CGI;在Apache中,您很可能只需將腳本放入cgi-bin
目錄中。
這應該足以讓你開始。有關CGI的大量教程可獲取更多信息。
- 1. Bash腳本沒有執行命令
- 2. 有沒有什麼辦法通過Javascript來執行MATLAB腳本?
- 3. 有沒有辦法通過LDAP命令行執行系統命令?
- 4. 有沒有辦法隨機自動點擊網頁上的鏈接?
- 5. Bash腳本命令沒有運行
- 6. Bash腳本沒有運行MySQL命令
- 7. 有沒有辦法通過PyVMomi在VMWare服務器上執行shell命令
- 8. WordPress的:有沒有辦法從PHP腳本運行cli命令?
- 9. Bash腳本:無法執行mencoder命令!
- 10. 有沒有辦法將命令行參數讀入Gretl腳本?
- 11. 有沒有辦法在python腳本中執行arp -a cmd命令?
- 12. 有沒有辦法通過命令行生成OpenClient .NET代理?
- 13. Rails:有沒有辦法通過命令行添加關聯?
- 14. 有沒有辦法在通話'zsh'後繼續執行腳本?
- 15. 通過其他目錄中的bash腳本執行git命令
- 16. 有沒有什麼辦法在eclispe鏈接到母親班通過點擊
- 17. 有沒有辦法通過編譯器的命令行來添加代碼?
- 18. 有沒有辦法讓現有的cmd窗口執行命令?
- 19. 有沒有辦法讓gradle執行$ path中的命令行
- 20. bash腳本:命令沒有找到
- 21. 通過訪問網頁執行命令?
- 22. 有沒有辦法從bash腳本發送VRFY命令+用戶名到netcat?
- 23. 有沒有辦法通過命令行來結束Windows任務(不是進程)?
- 24. bash腳本不執行mongod的命令
- 25. 有沒有辦法使用java來執行一系列的命令行
- 26. 有沒有辦法顯示Visual Studio執行的Git命令?
- 27. 有沒有辦法看到SmartGit執行的shell命令?
- 28. 有沒有辦法檢索Eclipse執行的git命令?
- 29. 有沒有辦法通過運行「django-admin makemessages -l ja」來執行自定義的makemessages命令?
- 30. bash腳本執行su命令
是什麼語言使用在服務器端的您的網站? – mariusnn 2012-08-02 01:41:01
英文。編程我想使用PHP或Perl。 – Garry 2012-08-02 15:31:03