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

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

zrj@zrj:~$ ssh [email protected]
[email protected]'s password:

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

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

expect常用的四个命令:

  1. spawn 启动新的进程

  2. expect 从进程接收字符串

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

  4. interact 允许用户交互

使用expect

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

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

保存,并给赋予执行权限

zrj@zrj:~$ chmod +x ./logindev
4、运行脚本
zrj@zrj:~$./logindev

猜你喜欢

转载自blog.51cto.com/phpme/2338610