#!/bin/bash
# 检查expect是否已安装
#install_expect=`rpm -qa expect | wc -l`
#echo $install_expect
if rpm -qa expect > /dev/null 2>&1; then
echo "Expect已经安装"
else
sudo yum install -y expect
fi
# 设备地址写入数组
switches=(
"172.30.1.210"
"172.30.1.212"
)
# TFTP服务器的信息
tftp_server="172.30.64.6"
# 账号密码
username="****"
password="****"
# 执行循环过程
for switch_ip in "${switches[@]}"; do
# 定义备份文件名
backup_filename="${switch_ip}.zip"
expect << eof
# 登录设备
spawn ssh $username@$switch_ip
expect {
"Are you sure you want to continue connecting (yes/no)?" { send "yes\r"; exp_continue }
"Password:" { send "$password\r" }
}
# 保存
expect ">"
send "save\r"
#expect "Are you sure to continue?\[Y/N\]"
expect "N]"
send "y\r"
# 备份
expect ">"
send "tftp $tftp_server put vrpcfg.zip $backup_filename\r"
expect {
"second(s)." { exp_continue }
">" { send "quit\r" }
}
expect eof
eof
echo -e "${switch_ip}备份完成\r\r"
done
#!/bin/bash
# 检查expect是否已安装
if rpm -qa expect > /dev/null 2>&1; then
echo "Expect已经安装"
else
sudo yum install -y expect
fi
# TFTP服务器
tftp_server="172.30.64.6"
# 账号密码
username="****"
password="****"
# 读取设备地址列表
while IFS= read -r line; do
backup_filename="$line.zip"
expect << EOF
# 登录设备
spawn ssh $username@$line
expect {
"Are you sure you want to continue connecting (yes/no)?" { send "yes\r"; exp_continue }
"Password:" { send "$password\r" }
}
# 保存配置文件
expect ">"
send "save\r"
expect "N]"
send "y\r"
# 备份配置文件
expect ">"
send "tftp $tftp_server put vrpcfg.zip $backup_filename\r"
expect {
"second(s)." { exp_continue }
">" { send "quit\r" }
}
expect eof
EOF
echo -e "\r\r"
done < filename.txt
#!/bin/bash
# 检查expect和telnet是否已安装
if rpm -qa expect > /dev/null 2>&1; then
echo "Expect已经安装"
else
sudo yum install -y expect
fi
if rpm -qa telnet > /dev/null 2>&1; then
echo "telnet已经安装"
else
sudo yum install -y telnet
fi
# TFTP服务器的信息
tftp_server="172.30.64.6"
# 账号密码
username="****"
password="****"
# 读取设备地址列表
while IFS= read -r line; do
backup_filename="$line.zip"
expect << EOF
# 登录设备
send_user "登录设备$line\n"
spawn telnet $line
expect {
"Username:" { send "$username\r"; exp_continue }
"Password:" { send "$password\r" }
}
send_user "保存配置文件\n"
expect ">"
send "save\r"
expect "N]"
send "y\r"
send_user "备份配置文件\n"
expect ">"
send "tftp $tftp_server put vrpcfg.zip $backup_filename\r"
expect {
"second(s)." { exp_continue }
">" { send "quit\r" }
}
expect eof
EOF
echo "$line配置备份完成"
echo -e "\r\r"
done < filename.txt