2013-10-18 44 views
0

我想在腳本中打開ssh會話,然後在本地執行其他命令,然後發送命令到已經打開的ssh會話。我想在腳本中打開一個ssh會話,然後在本地執行其他命令,然後發送命令到已經打開的ssh會話

具體而言,我想在Linux中運行一個shell腳本,它首先在後臺打開ssh會話,然後繼續並將數據庫置於只讀模式,然後在打開的ssh會話中運行命令,然後將數據庫放回寫模式。 當我這樣做的時候,每一秒都會計數,實際上打開ssh會話大約需要80%的時間,所以這就是爲什麼我不想在數據庫處於只讀狀態時打開ssh會話併發送命令給它,只有模式。我們沒有expect的訪問權限。

回答

1

我認爲連接複用是你的答案。

它的工作方式是,如果你在另一個窗口現有ssh連接到同一臺服務器, 例如在同一臺機器, 或在當前的登錄殼中背景會議上, 隨後ssh連接到相同的服務器可以重複使用第一個,即大大加快啓動時間,就像您想要實現的那樣, 。

添加到您的~/.ssh/config連接到服務器時啓用:

Host yourserver 
ControlMaster auto 
ControlPath ~/.ssh/master-%[email protected]%h:%p 

我用這個無處不在,所以不是yourserver我用*

試試這個:ssh在一個窗口中,在您登錄後,ssh到另一個窗口中的同一臺服務器上。第二個連接必須更快,因爲它不需要認證和建立連接,因爲它將重用已經存在的連接。

相關問題