利用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"
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号