写一个 shell利用expect自动连接ssh执行服务器端脚本文件
时间: 2023-06-04 21:04:08 浏览: 153
Shell脚本实现自动输入密码登录服务器
很高兴回答你的问题,这是一道关于使用Shell和Expect连接SSH并执行服务器端脚本文件的问题。下面是一个基本的示例脚本,可以根据你的具体情况进行修改:
```
#!/usr/bin/expect
set timeout -1
set user "your_username"
set password "your_password"
set host "your_host"
set script "your_script.sh"
spawn ssh $user@$host
expect {
"*password:" {
send "$password\r"
exp_continue
}
"Permission denied*" {
exit 1
}
"$ " {
send "sh $script\r"
expect {
"$ " {
send "exit\r"
exit 0
}
eof {
exit 0
}
}
}
eof {
exit 0
}
}
```
在这个脚本中,使用了Expect来等待不同的SSH输出并自动响应。首先,通过`spawn`命令启动SSH连接,然后Expect等待输入密码。如果成功连接,脚本会发送指令访问服务器端脚本文件并执行。执行完毕后,脚本会退出连接。
希望能够帮到你,如果有其他问题可以继续问我哦!
阅读全文