zoukankan      html  css  js  c++  java
  • expect免交互用法

    一、ssh免交互远程连接linux服务器

      ssh在远程连接linux系统时,会有交互,比如输入yes/no,或者需要输入密码。我们怎么避免这些交互呢!比如我们可以用telnet远程登录交换机,去备份交换机的配置,如果每一台都要手动输入密码,在有很多台交换机的情况下,这些交互就会显得很繁琐,或者我们需要自动备份这些交换机,在写脚本的时候也需要避免这些交互。现在我们来用expect这个工具来避免这些交互。

    1.1、安装expect

    命令:

    1 [root@client yck]# yum -y install expect
    2 [root@client yck]# rpm -q expect
    3 expect-5.45-14.el7_1.x86_64
    4 [root@client yck]# 
    5 [root@client yck]# 

     1.2、远程登录linux系统的脚本

    脚本:

    1 #!/usr/bin/expect                                           #制定expect解释器
    2 set ip [lindex $argv 0]                                    #创建变量ip,并指定第一个位置变量        
    3 spawn ssh root@$ip                                      #spawn创建一个回话,root用户远程连接
    4 expect {
    5         "yes/no" { send "yes
    ";exp_continue }  #捕捉到“yes/no”,就发送指令yes,
    表示回车,ex_continue表示没有捕捉到“yes/no”,继续下一步
    6         "password:" { send "admin@1234
    " };   #捕捉到"password:",就发送“密码+7 }
    8 interact                                                           #保持连接,不退出ssh    
    9             

    1.3、测试远程连接是否还有交互

  • 相关阅读:
    2.2.16锁对象的改变
    2.2.15内置类与同步:测试2
    2.2.14内置类与同步:测试1
    2.2.13内置类与静态内置类
    libev客户端
    Linux下sqlite3编程
    ds18b20驱动及应用程序
    ds18b20采集温度并上报服务器
    linux下GPRS模块ppp拨号上网
    linux下GPRS模块的应用程序
  • 原文地址:https://www.cnblogs.com/mython/p/11934983.html
Copyright © 2011-2022 走看看