zoukankan      html  css  js  c++  java
  • 批量配置主机--expect

    ##安装expect
    
    yum -y install expect

    ###step1: 发送脚本文件到远程服务器;

    ###step2: 在远程服务器执行脚本;完成后删除脚本文件

    #!/bin/bash
    
    IpList=`cat $1`
    
    for ip in $IpList
    do
    echo -e "33[32m 'send script to $ip' 33[0m"
    /usr/bin/expect <<-EOF
    set timeout -1
    set passwdlist { username {password1 password2 password3 ...} }
    foreach {u p} $passwdlist {
    spawn  scp script.sh $u@$ip:/opt/
    lassign $p s(1) s(2) s(3)
    set i 1
    expect {
    "*yes/no*"  {send "yes
    ";exp_continue}
    "*assword:*" {send "$s($i)
    ";incr i;set okpasswd [expr {$i - 1}]; exp_continue}
    "*]*" { puts "scp completed"; exit}
    "Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)." {puts "ipaddr:$ip password:unkonw"; exit }
    }
    }
    EOF
    done
    
    for ip in $IpList
    do
    echo -e "33[32m 'execute script on $ip' 33[0m"
    /usr/bin/expect <<-EOF
    set timeout -1
    set passwdlist { username {password1 password2...} }
    foreach {u p} $passwdlist {
    spawn ssh $u@$ip
    lassign $p s(1) s(2) s(3)
    set i 1
    expect {
    "*yes/no*" {send "yes
    ";exp_continue}
    "*password:*" {send "$s($i)
    ";incr i;set okpasswd [expr {$i - 1}] ;exp_continue}
    "*]*" {send "hostname
    "}
    "Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)." {puts "ipaddr:$ip password:unkonw"; exit }
    }
    expect "]*"
    send { /opt/script.sh } 
    send "
    "
    expect "]*"
    send { rm /opt/script.sh }
    send "
    "
    expect "]*"
    send "exit
    "
    }
    EOF
    done
    
  • 相关阅读:
    composer 版本号前置~与^符号的区别
    阿里巴巴离线数据同步工具/平台datax安装、使用笔记
    LAMP集成环境搭建
    MySQL在Windows中设置环境变量
    jQuery 事件
    jQuery 属性,元素
    jQuery 选择器
    JavaScript 动画
    JavaScript BOM-三剑客
    JavaScript BOM-对象
  • 原文地址:https://www.cnblogs.com/gy99/p/12175105.html
Copyright © 2011-2022 走看看