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

posted @ 2017-12-04 22:12  小时候智商可高了  阅读(9930)  评论(0编辑  收藏  举报