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