SHELL备份交换机配置文件

#!/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