zoukankan      html  css  js  c++  java
  • 利用expect远程控制相关脚本

    exe_start_agent.sh

    #!/bin/sh

    FILENAME="ip.file"
    cat $FILENAME|while read line
    do
    eval `echo $line|awk '{print "IP="$1}'`
    eval `echo $line|awk '{print "USER="$2}'`
    eval `echo $line|awk '{print "PATHWORD="$3}'`
    echo "$IP $USER $PATHWORD"

    ./start_agent.exp $IP $USER $PATHWORD
    echo "start succuss"
    done

    exe_stop_agent.sh

    #!/bin/sh

    FILENAME="ip.file"
    cat $FILENAME|while read line
    do
    echo $line
    eval `echo $line|awk '{print "IP="$1}'`
    eval `echo $line|awk '{print "USER="$2}'`
    eval `echo $line|awk '{print "PATHWORD="$3}'`
    echo "$IP $USER $PATHWORD"

    ./scp.exp $IP $USER $PATHWORD
    echo "scp success"
    sleep 1
    ./ssh.exp $IP $USER $PATHWORD
    echo "ssh success"
    done 

    ip.file

    127.0.0.1 user password

    scp.exp

    #!/usr/bin/expect -f

    set timeout 300
    set ip [lindex $argv 0]
    set user [lindex $argv 1]
    set password [lindex $argv 2]

    spawn scp stop_agent.sh ${user}@${ip}:stop_agent.sh

    expect {
    "*yes/no*" { send "yes "; exp_continue}
    "*password:" { send "$password " }
    }
    expect "*password:"

    send "$password "

    send "exit "

    expect eof

    ssh.exp

    #!/usr/bin/expect -f

    set timeout 30
    set ip [lindex $argv 0]
    set user [lindex $argv 1]
    set password [lindex $argv 2]


    spawn ssh ${user}@${ip}
    expect {
    "yes/no" { send "yes "; exp_continue}
    "*password:" { send "$password " }
    }

    expect {
    "*$*" {
    send "sh stop_agent.sh "
    expect "*$*"
    send "rm stop_agent.sh "
    expect "*$*"
    send "exit "
    }
    "*>*" {
    send "sh stop_agent.sh "
    expect "*>*"
    send "rm stop_agent.sh "
    expect "*>*"
    send "exit "
    }
    }

    expect eof

    start_agent.exp

    #!/usr/bin/expect -f

    set timeout 30
    set ip [lindex $argv 0]
    set user [lindex $argv 1]
    set password [lindex $argv 2]


    spawn ssh ${user}@${ip}
    expect {
    "yes/no" { send "yes "; exp_continue}
    "*password:" { send "$password " }
    }

    expect {
    "*$*" {
    send "sh ~/agent/bin/agent_monitor.sh ~/agent/bin "
    expect "*$*"
    send "exit "
    }
    "*>*" {
    send "sh ~/agent/bin/agent_monitor.sh ~/agent/bin "
    expect "*>*"
    send "exit "
    }
    }

    expect eof

    stop_bocs.sh

    #!/bin/sh

    cd agent/bin
    echo "begin"
    crontab_bocs=`crontab -l |grep -w "agent" |grep -w "agent_monitor.sh"|grep -v grep |wc -l`
    if [ "${crontab_bocs}" != "0" ]
    then
    crontab -l > crontab_bocs.list
    sed '/agent/bin/agent_monitor.sh/'d crontab_bocs.list >list.list
    crontab list.list
    rm crontab_bocs.list
    rm list.list
    fi
    sh stop.sh
    rm ../output/*
    echo "end"

  • 相关阅读:
    element-ui做表单验证 v-for遍历表单 自动生成校验规则 pc移动双适配
    element-ui练习使用总结
    js监听页面标签切换
    对象数组,按照没想中特定的属性(按中文拼音)排序
    调用七牛云存储文件,返回url
    javascript中的class类 以及class的继承
    javascript原型继承
    javascript面向对象 用new创建一个基于原型的javascript对象
    java中的变量和数据类型
    css的伪元素
  • 原文地址:https://www.cnblogs.com/wcc331902579/p/5923058.html
Copyright © 2011-2022 走看看