zoukankan      html  css  js  c++  java
  • expect脚本

    #!/bin/bash
    # Filename: main.sh
    
    usage(){
     echo "scp file :./main.sh scp sourcefile destfile"
     echo "ssh exec: ./main.sh ssh command"
    }
    
    file=iplist.txt
    #password='fengmao'
    case $1 in
      "scp")
        
        for ip in `cat $file`; do
            ./scp.exp $ip $2 $3
        done
      ;;
      "ssh")
        for ip in `cat $file`;do
            ./ssh.exp $ip "$2"
        done
      ;;
      *)
        usage
      ;;
    esac

    ssh。exp

    #!/usr/bin/expect -f
    
    set ipaddr [lindex $argv 0]
    set command [lindex $argv 1]
    #set passwd [lindex $argv 1]
    set passwd test
    set timeout 30
    spawn ssh root@$ipaddr
    expect {
        "yes/no" {send "yes
    "; exp_continue}
        "password:" { send "$passwd
    "}
    }
    expect { 
    #    "#*" {send "apt-get install snmp-mibs-downloader -y
    "}  
        "#*" {send "$command
    "; send "exit
    " }  
    }
    
    expect eof  

    scp.exp

    #!/usr/bin/expect -f
    
    set timeout 10
    set host [lindex $argv 0]
    set src_file [lindex $argv 1]
    set dest_file [lindex $argv 2]
    set username root
    set password test
    spawn scp $src_file $username@$host:$dest_file
     expect {
     "(yes/no)?"
       {
        send "yes
    "
        expect "*assword:" { send "$password
    "}
     }
     "*assword:"
    {
     send "$password
    "
    }
    }

    expect "100%"
    expect eof

     

    iplist

    192.168.0.201
    192.168.0.202
    192.168.0.203
    192.168.0.204
    192.168.0.205
    192.168.0.206
    192.168.0.207
    192.168.0.208
    192.168.0.209
    192.168.0.210
    192.168.0.211
    192.168.0.212
    192.168.0.213
    192.168.0.214
    192.168.0.215
    192.168.0.216
    192.168.0.217
    192.168.0.218
    192.168.0.219
    192.168.0.220
    192.168.0.221
    192.168.0.222
    192.168.0.223
    192.168.0.224
    192.168.0.225
    192.168.0.226
    192.168.0.227

    http://wangxu.me/blog/p/tag/exp_continue

    exp_continue心得。

    “expect 的匹配可以看做是一个循环,通常匹配之后都会退出语句,但如果有 exp_continue 则可以不断循环匹配,输入多条命令 - See more at: http://wangxu.me/blog/p/tag/exp_continue#sthash.hiiDHL2Z.dpuf”

    这也是为什么在第二个脚本中加入send "exit ",如果不加它会循环。

  • 相关阅读:
    深入了解CSS3新特性(转)
    微小,但是美好的改变 G2 2.2发布
    可视化框架设计-数据调整
    可视化框架设计-图表类型
    可视化框架设计-数据流
    人之初,性本动
    可视化框架设计-坐标系
    可视化框架设计-视觉通道
    可视化框架设计-数据类型
    可视化框架设计-整体思路
  • 原文地址:https://www.cnblogs.com/silenceli/p/3447657.html
Copyright © 2011-2022 走看看