我想通過SSH發送幾個shell命令到服務器。目前,這看起來像下面這樣:如何在不每次打開新連接的情況下通過SSH發送shell命令?
echo "copy file on server"
ssh [email protected] "cp file1 file2"
echo "rename file on server"
ssh [email protected] "mv file2 file3"
echo "generate folder on server"
ssh [email protected] "mkdir files"
echo "syncing files to server"
rsync ...
echo "do some other stuff"
ssh [email protected] "touch filex"
這樣做了幾次之後,因爲我有太多打開的連接/打開連接太多我被列入黑名單。
有沒有辦法避免列入黑名單(例如打開單個SSH句柄,發送命令,並再次關閉句柄)?
問題是,某些命令需要在本地執行(例如,rsync
命令),而其他命令需要在服務器上執行。這兩種命令混合在一起。
爲什麼不用ssh用戶@服務器ssh進入服務器?然後執行這些命令,並再次退出服務器? – maikovich
有一個步驟,我想從我的本地機器到服務器'rsync'文件。如果有一種方法可以告訴rsync「從啓動SSH連接的本地計算機的工作目錄中獲取文件」,那很好。 –
默認情況下,本地計算機上的rsync將使用SSH將文件傳輸到遠程主機。 –