我試圖用perl自動化一個進程,基本上telnet到一個系統中,「ssh -f -N」分成兩個,最後打開一個屏幕/ tmux會話並運行sshuttle,然後斷開與屏幕/ tmux的連接。perl調用'ssh -f -N'..我應該使用Net :: Expect,system還是exec?
如果我打算使用「-f -N」選項運行ssh - 是否最好通過Net :: SSH :: Expect,Net :: Expect,system或exec來處理?
我很關心Net :: SSH或Net :: Expect,因爲我不確定幾件事情,首先,我如何獲得Net :: Expect/SSH來識別SSH會話是否成功?也就是說,當我編程Net :: Expect並用這些參數產生ssh會話,並隨後登錄時,沒有更多的'expect'輸出可以看到。我想依賴除期望超時之外的其他東西。
這有道理嗎?我不確定我清楚地說明了我的問題。
我也不確定如果我產生進入後臺的ssh會話,perl將如何表現。我的Perl程序會不會退出?等待基於後臺的SSH會話結束?
正是由於這個最後一個問題,我問了我是否應該考慮使用系統或執行調用Net::Expect
的其他問題。
除了運行外部命令外,perl代碼還能執行任何其他處理嗎?這聽起來更適合於shell腳本而不是perl腳本。 – chepner
除了運行外部命令外,代碼並沒有做太多的工作。我通常會爲此使用shell腳本,但需要像期望的那樣將密碼傳遞給ssh。這與嘗試學習更多perl一起,是爲什麼我試圖使用Net :: Expect。 –
,這些特定的主機不允許我使用rsa密鑰進行無密碼登錄。 –