备份时设备连接不上怎么办
前两天朋友公司的路由器做定期配置备份,结果脚本跑着跑着报错:SSH 连接超时。这类问题太常见了,尤其是跨地区、跨网络的设备。别急着重试,先检查目标设备是否在线,可以用 ping 测试基础连通性。
如果 ping 不通,可能是防火墙策略变了,也可能是设备宕机。这时候别光盯着备份工具看,打开监控系统查一下设备状态。曾经有次我们发现是某台交换机电源模块故障,导致 SSH 服务不可用,换完电源立马恢复正常。
ping 192.168.10.1
ssh admin@192.168.10.1配置文件没生成或为空
有些自动化脚本执行后,发现生成的配置文件是空的,或者根本没创建。这种情况大概率是命令执行权限不够,或者是设备返回的内容被过滤了。比如华为设备在使用 display current-configuration 命令时,如果用户视图权限太低,可能只能看到部分配置。
解决办法很简单:确认账号是不是具有管理员权限,同时检查脚本中是否正确捕获了命令输出。可以在测试环境手动执行一遍流程,看看终端实际回显什么内容。
脚本中断后如何续传
批量备份几十台设备,跑到第 25 台突然断网,从头再来?没必要。建议在脚本里加入状态记录机制,比如每完成一台就在日志里打个标记。下次运行时先读取日志,跳过已完成的设备。
# 示例:记录已完成的设备IP
echo "192.168.10.1 success" >> backup.log遇到特殊字符导致解析失败
有次备份 Cisco 路由器配置,因为密码字段里带了个 ! 符号,整个 YAML 解析直接崩了。这种问题容易被忽略,但后果严重——配置虽然存下来了,但恢复时根本没法读。
建议在保存前对敏感字符做转义处理,或者统一使用 base64 编码存储原始配置内容。这样哪怕里面有特殊符号也不怕。
import base64
encoded_config = base64.b64encode(config_str.encode()).decode()备份频率太高反而出问题
有人为了“保险”,设置每十分钟备份一次核心交换机。结果设备 CPU 直接飙到 90% 以上。频繁执行 show running-config 这类命令会占用系统资源,特别是老旧设备更扛不住。
合理做法是区分设备等级:核心设备每天一次,汇聚层每周一次,接入层按需备份。同时避开业务高峰期,比如选在凌晨两点执行任务。