
我試圖找到使用 ssh 上傳檔案最簡單的方法,然後在同一 ssh 會話中在遠端電腦上執行命令進行一些後處理,這樣我就不需要再次登入。如果可能的話,上傳應該會顯示一些進度指示器。
到目前為止,我研究了 scp 和 rsync,兩者都無法運行任何鉤子。 (我可以使用--rsync-path
參數來執行一些腳本前rsync)但我想做後處理。有沒有辦法打開 ssh 會話、上傳、執行命令並再次關閉它?
答案1
好吧,您可以透過一個命令將整個過程透過管道傳輸,另一端則ssh
使用 a 。cat
這裡我上傳一個 shell 腳本,使其可執行,然後執行它:
$ cat sayhi.sh | ssh myserver 'cat > ./remotehi.sh ; chmod +x ./remotehi.sh ; ./remotehi.sh'
hello, world!
答案2
您可能需要ControlMaster
中的機制ssh
。