首页 > 代码库 > 利用expect远程控制相关脚本
利用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\r"; exp_continue}
"*password:" { send "$password\r" }
}
expect "*password:"
send "$password\r"
send "exit\r"
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\r"; exp_continue}
"*password:" { send "$password\r" }
}
expect {
"*$*" {
send "sh stop_agent.sh\r"
expect "*$*"
send "rm stop_agent.sh\r"
expect "*$*"
send "exit\r"
}
"*>*" {
send "sh stop_agent.sh\r"
expect "*>*"
send "rm stop_agent.sh\r"
expect "*>*"
send "exit\r"
}
}
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\r"; exp_continue}
"*password:" { send "$password\r" }
}
expect {
"*$*" {
send "sh ~/agent/bin/agent_monitor.sh ~/agent/bin\r"
expect "*$*"
send "exit\r"
}
"*>*" {
send "sh ~/agent/bin/agent_monitor.sh ~/agent/bin\r"
expect "*>*"
send "exit\r"
}
}
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"
利用expect远程控制相关脚本