测试华为交换机,通过telnet或者ssh 登录设备做自动备份配置
首先需要创建一个IP列表:
1.1.1.1 switch1
1.1.1.2 switch2
1.1.1.3 switch3
#!/bin/bash
USERNAME=network
PASSWORD=****
COUNT=`cat ip | wc -l`
##读取IP列表有多少行;通过for循环来实现读取每一行内容
####ssh方式备份交换机设备
function ssh (){
for ((i=1;i<=${COUNT};i++))
do
expect << EOF | tee -a /root/shell/backup/cat ip | awk '{print $2}' | sed -n "${i}p".log
set timeout 30
spawn ssh -q network@cat ip | awk '{print $1}' | sed -n "${i}p"
expect {
“yes/no”
{ send “yes\r”;exp_continue}
“Password:”
{ send “$PASSWORD\r”}
}
expect {
“*>”
{ send “dis inter des\r” }
}
expect {
" ---- More ----"
{ send " " }
}
expect eof ##这里不能写成interact,否则会登陆不成功
EOF
if [ $? = 0 ];then
echo -e “\033[32m secuess\033[0m”
else
echo -e “\033[32m failed \033[0m”
fi
done
}
####telnet方式备份交换机设备
function telnet (){
for ((i=1;i<=2;i++))
do
(
sleep 1
#echo ${USERNAME}
sleep 1
echo ${PASSWORD}
sleep 2
echo "dis curr"
echo " "
#向设备输入宫格,继续翻页;
echo "quit"
sleep 3
) | telnet `cat ip | awk '{print $1}' | sed -n "${i}p"` | tee -a /root/shell/backup/`cat ip | awk '{print $2}' | sed -n "${i}p"`.log
if [ $? = 0 ];then
echo -e “\033[32m secuess\033[0m”
else
echo -e “\033[32m failed \033[0m”
fi
done
}
telnet | ssh
##选择执行那个函数