家里或公司里的路由器、交换机这些设备,时间一长容易出问题。有时候换个固件、升级个系统,结果网络就上不去了。其实很多麻烦,都是因为没提前把配置文件保存好。
为什么需要定期备份配置
想象一下,你家的Wi-Fi突然连不上,翻了半天设置发现之前的规则全没了。这种情况,如果有份最近的配置备份,几分钟就能恢复。特别是公司用的网络设备,ACL规则、端口映射、VLAN划分,手动重配一次得花大半天。
很多人还在靠手动登录设备,一条条敲命令导出配置,不仅慢,还容易漏。其实用Python写个小脚本,每天自动连上去抓一份配置存下来,省心又可靠。
用Python自动登录并获取配置
Python有个叫 paramiko 的库,能模拟SSH登录。比如你家的路由器支持SSH,就可以让脚本定时登录进去,执行 show running-config 或 display current-configuration 这类命令,把返回内容保存成文本文件。
import paramiko
import datetime
def backup_router_config(host, username, password, port=22):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, port, username, password)
stdin, stdout, stderr = client.exec_command('show running-config')
config = stdout.read().decode('utf-8')
filename = f"backup_{host}_{datetime.datetime.now().strftime('%Y%m%d_%H%M')}.cfg"
with open(filename, 'w') as f:
f.write(config)
client.close()
print(f"配置已保存到 {filename}")把这个脚本设成每天凌晨跑一次,配合系统的 crontab 或 Windows 任务计划程序,完全不用操心。
不只是网络设备
其实像 NAS、摄像头管理服务器、甚至某些智能家居网关,只要能通过命令行或API获取配置,都能用类似思路做自动备份。关键是把重复的手工操作变成一次性的脚本工作。
有人担心Python难学,其实这种脚本二三十行就搞定了,网上搜个例子改改IP和账号密码,当天就能用起来。比起出问题后折腾半天,这点学习成本真不算啥。
把重要设备的配置交给Python定时备份,就像给家里的门锁拍张照片,平时用不上,关键时候能救命。