所谓有备而无患,虽说备份不能百分百保证损失,但是却最大程度降低损失,以及保证业务尽快恢复。所以备份在数据领域是非常重要的,特别是核心设备、关键服务尤其重要。 假如您正好有一台Linux服务器,可以跑一些测试脚本,那么您就可以使用在这个脚本进行对一些设备配置文件进行备份,思路于此,但不仅限于此。
命令简介
- expect:dnf install expect 或 yum install expect
expect通常是用来等待一个进程的反馈;expect可以接收一个字符串参数,也可以接收正则表达式参数。
- spawn spawn 用于启动新的进程。
- send send 用于接收字符串参数,并将参数传给spawn进程。
- Telnet:dnf install telnet 或 yum install telnet telnet 用于连接交换机等设备,如果用stelnet可以用ssh方式连接。
Shell 脚本
- 交换机
#!/usr/bin/bash
expect << EOF
# 交换机 192.168.1.12 Telent 方式
spawn telnet 192.168.1.12
set timeout 5
# 输入telnet 用户名及密码
expect "*Username:"
send "testr"
expect "*Password:"
send "test123456r"
expect "*>"
# 连接远程 FTP 192.168.1.5 ,端口 8533
send "ftp 192.168.1.5 8533"
expect "*(none)"
# 输入FTP 用户名和密码
send "ftpusernamer"
expect "*password:"
send "ftpusername123r"
expect "*ftp]"
sleep 2
# 把启动文件 vrpcfg.zip 上传至FTP服务,并改名为 ftp-back-text.zip
# 关于启动文件,可参考交换机手册,不同交换机可能不同
send "put vrpcfg.zip ftp-back-text.zipr"
expect "*ftp]"
sleep 2
send "quitr"
sleep 2
send "quitr"
expect "*>"
send "quitr"
expect eof
EOF
# 删除过期文件,根据自己需要设置
# 这里假设备份文件在当前目录下,仅保留7天时长的备份文件;
find ./* -type f -mtime 7 -exec rm -f {} ;
- OLT 脚本
- 末话
这里博主给出的仅是简单的脚本,各位大佬可根据实际情况进行修改和调整。比如设备分组,未能备份成功的进行记录等都是可以考虑进去的,难点只是一开始不知道怎么进行备份(新手),有了这个脚本例子就可以根据自己需求进行修改。需要注意的是:①权限问题;②安全问题(可以进行默认端口修改,禁止匿名,防火墙或信任主机等措施)。