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"

  • 相关阅读:
    卸载cuda,以及N卡驱动
    ubuntu 16.04 从gcc 5.4 安装gcc 5.3.0
    Check failed: status == CUBLAS_STATUS_SUCCESS (13 vs. 0) CUBLAS_STATUS_EXECUTION_FAILED
    ubuntu16.04 caffe cuda9.1 segnet nvidia gpu安装注意的点
    ubuntu16.04安装docker
    进程管理
    Dev TextEdit 只输入数字
    dev gridcontrol添加右键菜单
    WinForm rdlc 报表自定义datatable数据源
    DevExpress GridControl使用方法总结2 属性说明
  • 原文地址:https://www.cnblogs.com/wcc331902579/p/5923058.html
Copyright © 2011-2022 走看看