shell腳本命令遠程連接ssh並執行命令


環境: redhat 6.5

根據網上提供方法,測試了很多寫法都不成功,測試了很久才有了以下腳本。

命令遠程連接ssh並執行命令,scp/ftp等遠程連接操作同理:

#!/usr/bin/expect

set passwd "password"

set user "root"

set host "192.168.1.168"

#spawn表示開啟新expect會話進程

spawn ssh $user@$host

#有可能檢測密鑰方式連接,我的沒有所以先注釋了

#expect檢測字符串經過簡單測試,應該是以正則表達式匹配接收的字符

#expect "yes/no"

#send "yes\r"  

expect  "password"

send "$passwd\r"

expect "$user@"

#感覺shell交互就是得expect先接收,才能進行下一步send

send "echo 'passwd' >> /root/for_test.sh\r"

expect "$user@"

send "exit\r"

#expect eof表示結束expect和相應進程會話結束,如果用interact會保持停留在當前進程會話

expect eof


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM