利用shell的expect实现自动登录服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用shell的expect实现自动登录服务器相关的知识,希望对你有一定的参考价值。

前言:使用ssh登录内网服务器,每次都要输入以下命令,次数多了就感觉很麻烦。

[email protected]:~$ ssh [email protected]
[email protected]‘s password:

现在,我们可以使用Expect实现复杂的交互过程。

Expect是一个用来处理交互的命令。

expect常用的四个命令:

  1. spawn 启动新的进程

  2. expect 从进程接收字符串

  3. send 用于向进程发送字符串

  4. interact 允许用户交互

使用expect

1、 安装
[email protected]:~$ sudo apt-get install expect
2、获取expect执行路径
[email protected]:~$ which expect
/usr/bin/expect
3、编写脚本
[email protected]:~$ cd ~
[email protected]:~$ touch logindev
[email protected]:~$ vim logindev

#!/usr/bin/expect
#启动新进程
spawn ssh [email protected]
#从进程接收字符串
expect "*password:"
#向进程发送字符串
send "yourpassword
"
#允许用户交互
interact

保存,并给赋予执行权限

[email protected]:~$ chmod +x ./logindev
4、运行脚本
[email protected]:~$./logindev

以上是关于利用shell的expect实现自动登录服务器的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本实现ssh自动登录远程服务器示例

shell脚本通过expect实现自动单边无密登录

telnet登录路由器启动服务的shell脚本

shell expect的简单用法

shell分发系统

linux expect详解(ssh自动登录)