我已經研究過PHP的SSH2模塊,但它需要在非常臃腫的服務器上進行PHP重新編譯。這遠比我們現在要承擔的風險要多得多。是否可以使用cURL通過SSH抓取文件?
我可以使用cURL通過SSH獲取幾個文件嗎?我做了一些谷歌搜索,並找到一些來源,但沒有100%清楚這是否可能。
我已經研究過PHP的SSH2模塊,但它需要在非常臃腫的服務器上進行PHP重新編譯。這遠比我們現在要承擔的風險要多得多。是否可以使用cURL通過SSH抓取文件?
我可以使用cURL通過SSH獲取幾個文件嗎?我做了一些谷歌搜索,並找到一些來源,但沒有100%清楚這是否可能。
我不確定cURL,但如果您不想重新編譯但服務器已安裝ssh客戶端,則可以撥打電話scp
進行系統調用。當然,如果你在本地和遠程主機之間都有SSH密鑰,它將會工作得最好。
shell_exec("/usr/bin/scp -i private_key_identity [email protected]:/path/to/remote/file /local/path");
CURL不會工作不幸。您可以像邁克爾建議的那樣使用scp,或者如果您需要定期複製文件,我會建議rsync
,因爲它只會傳輸文件內容之間的差異。
exec('/usr/bin/rsync -az [email protected]:/path/to/directory/* /path/to/local/directory/');
標誌-a
將使用歸檔模式,看到documentation瞭解更多詳情。 -z
標誌將壓縮傳輸。
rsync
也將通過SSH
轉移,所以請確保您的私鑰/公鑰設置正確。