我試圖實現與一個bash腳本如下:遠程SSH和命令執行使用bash和期待
- 拉昇SSH連接,如果失敗,錯誤出如果SSH連接是
- 一旦確認中,執行「頂部」命令,並將結果保存到從遠程服務器
我知道invidiual命令,這將是文件
ssh -q [email protected] exit
echo $?
這應該成功返回 '0' 和 '255' 的錯誤。
2)執行頂部並保存到文件將是:
top -n 1 -b > /tmp/top.out
3)從遠程主機scp將文件
expect -c "
set timeout 1
spawn scp [email protected]:/tmp/top.out [email protected]:/.
expect yes/no { send yes\r ; exp_continue }
expect password: { send password\r }
expect 100%
sleep 1
exit
"
下面把這個完全是我的問題,更具體:
當使用期望tes時,我似乎無法得到返回的'0'和'255'值t SCP連接。
- 我似乎無法能夠再次使用預期來執行top命令,即這不起作用:
期待-c「 設定超時1個 產卵SSH用戶@主機頂部-n 3 -b> /tmp/top.out 期望密碼:{發送密碼\ R} 睡眠1個 出口 「
- 並且因此第三位不會活像k也是。
任何幫助表示讚賞。請記住,我的腳本是一個.sh腳本,其中#!/ bin/bash聲明 - 由於各種原因,我不能使用#!/ usr/bin/expect。
如果您擁有源代碼發行版或系統的expect-dev軟件包,您應該具有自動預期功能。您可能希望交互式運行命令,並查看autoexepect認爲對話應該是什麼樣子。 –
這就是它的樣子,它的設置是在我的公司,這不是我的錯,所以我只是想充分利用它 – Tamas