编写脚本实现登陆远程主机

欠伸展肢体,吟咏心自愉。这篇文章主要讲述编写脚本实现登陆远程主机相关的知识,希望能为你提供帮助。
      使用expect和shell编写脚本均可登录远程主机。

  1. expect脚本登录
      expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助 expect 处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率。
1.1 自动登录
    准备两台虚拟机,笔者这边两台虚拟机的ip分别为10.10.10.153和10.10.10.154(如下图)


    以hello-world虚拟机远程登录centos8.3为例,在hello-world虚拟机上创建脚本expect1,脚本中,需设置好远程登录主机的ip、登录mi码,在询问yes或no的环节选择yes(如下图)

    执行  chmod +x ./expect1 命令,赋予expect1执行权限后,执行 ./expect1 命令即可登录到centos8.3上(如下图)



1.2 变量功能登录
    expect除了上面的基本功能,还可以实现变量方式进行远程登录,通过赋值的形式来完成指令,如脚本中的set ip 10.10.10.153类似于ip=10.10.10.153(如下图)

    给予expect2脚本执行权限后,执行即可登录到centos8.3主机上(如下图)

    在此基础上,我们可以将地址、用户名和mi码设置位未知参数$argv 0、$argv 1和$argv 2,执行脚本时添加上需连接的主机具体信息,以方便同一脚本实现不同主机的登录(如下图)



  1. shell脚本登录
    shell脚本登录时,脚本内容与expect2脚本内容大体相同(如下图)

    执行 bash ./expect3.sh 命令,即可登录到centos8.3上(如下图)

    当然我们也可将脚本中的ip、user和password设置位变量$1、$2、和$3,在执行时添加上具体的地址、用户和mi码,这样就可以通过一个脚本去登录不同的主机(如下图)

【编写脚本实现登陆远程主机】

    推荐阅读