我是腳本世界的新手。我在使用expect腳本在遠程服務器上執行本地shell腳本時遇到問題。 使用expect腳本在遠程服務器上執行本地shell腳本(不在遠程服務器上覆制它)
VAR=$(/home/local/RD/expect5.45/expect -c "
spawn -noecho ssh -q -o StrictHostKeyChecking=no [email protected]$HOST $CMD
match_max 100000
expect \"*?assword:*\"
send -- \"$PASS\r\"
send -- \"\r\"
send \"exit\n\r\"
expect eof
")
這是工作的罰款,如果CMD就像df -kh;top
基本命令我的腳本如下。 但我需要在遠程服務器上爲其創建一個shell腳本來收集多個統計信息。 我都試過,沒有運氣
spawn -noecho ssh -q -o StrictHostKeyChecking=no [email protected]$HOST 'bash -s' < localscript.sh
其無法領取和遠程服務器上執行localscript以下。 請幫助解決此問題。
Tnx快速回復。它與ssh-key無關。因爲「ssh -q -o StrictHostKeyChecking = no $ USER @ $ HOST'bash -s'
peeyushs
Hrm。如果你發送命令作爲'ssh'命令的參數執行,那麼你不需要在'expect(1)'腳本中發送'exit' ... – sarnold
刪除發送後它不工作。我嘗試這樣的產品ssh用戶@遠程服務器「本地腳本在遠程服務器上執行」。是否有其他出路去做同樣的事情。 – peeyushs