我正在嘗試使用php編寫基本上與交互式ssh系統,我需要使用ssh_exec或shell在遠程服務器上執行php命令並從命令中收集輸出實時。從ssh使用php運行的實時輸出
我已經搞砸了輸出緩衝和flush(),直到我在臉上藍色,我即將有命令將其輸出重定向到文件,並有一個單獨的腳本,用sftp查詢此文件的內容並使用jquery更新頁面上的輸出div。
就在我走下這條長長的蜿蜒路線之前,有沒有人有使用單一腳本工作的解決方案?
謝謝!
我正在嘗試使用php編寫基本上與交互式ssh系統,我需要使用ssh_exec或shell在遠程服務器上執行php命令並從命令中收集輸出實時。從ssh使用php運行的實時輸出
我已經搞砸了輸出緩衝和flush(),直到我在臉上藍色,我即將有命令將其輸出重定向到文件,並有一個單獨的腳本,用sftp查詢此文件的內容並使用jquery更新頁面上的輸出div。
就在我走下這條長長的蜿蜒路線之前,有沒有人有使用單一腳本工作的解決方案?
謝謝!
會像下面的東西不起作用?
$output = shell_exec($theScript);
file_put_contents($someFile, $output, FILE_APPEND);
還是我得到了棒的錯誤結局?
有是沒有這樣的事情該有一個腳本可靠地工作:你在服務器端在緩存無法控制 - flush()
可能會或可能不會如預期的工作取決於無論您使用mod_php
,CGI
,FCGI
或什麼,並且你完全不能控制客戶端的緩衝(IE在這裏臭名昭着)。
在那裏,做到了,用AJAX做到了。
聽起來就像你已經走過了我開始的道路。你會友善地分享你的代碼嗎?高興地分享我的最終解決方案作爲一個網站! – Chrispy 2012-02-15 10:28:43
或者,如果不是,你能概述一下你用ajax獲得結果嗎?我與之通話的服務器可能不是Web服務器,所以我不能只輸出到文件並使用http獲取,你會說執行常規sftp請求並將結果輸出到使用jquery的div是正確的解決方案嗎?這對我來說似乎很重! – Chrispy 2012-02-15 10:33:13
我很想去,但我可能不會 - 現在屬於客戶。但這很簡單:我啓動了外部命令(在我的情況下它是一個長時間運行的導入腳本),並將輸出重定向到一個文件中,設置會話變量$ seek = 0。 Ajax等待500ms,從位置$ seek中讀取文件到最後,記住$ seek中的新位置,並將讀取的文本給出。 – 2012-02-15 10:34:09