如何对比两个Cisco设备配置变量config1与config2的差异?
对比Cisco设备两个运行配置差异的方法
你手里有两个存储Cisco设备不同时间点运行配置的变量config1(默认配置)和config2(测试后配置),要找出config2相对config1的差异并最终让两者一致,下面是几种实用方法:
1. 用命令行diff工具(跨平台)
把两个配置分别导出成文本文件(比如config1.txt和config2.txt),直接用系统自带的diff命令就能生成并排对比结果:
# Linux/macOS或Git Bash(Windows)下执行 diff --side-by-side --suppress-common-lines config1.txt config2.txt
这个命令会只显示两行配置里不一样的内容,左右并排,直观看到config2里新增或修改的部分。
2. Python脚本处理(适合代码内自动化对比)
如果是在Python代码里直接处理config1和config2变量,用标准库difflib就能实现,还能生成带高亮的HTML对比页面:
import difflib # 假设config1和config2是字符串格式的配置内容 config1_lines = config1.splitlines() config2_lines = config2.splitlines() # 生成并排对比的HTML报告 diff_html = difflib.HtmlDiff().make_file(config1_lines, config2_lines, "默认配置(config1)", "测试后配置(config2)") # 把HTML内容保存到文件,打开就能看高亮对比 with open("config_diff.html", "w") as f: f.write(diff_html)
打开生成的HTML文件,就能看到和在线对比网站一样的并排高亮差异效果,还能直接看到每一行的增删改。
3. 本地GUI对比工具
如果喜欢可视化操作,用这些跨平台工具更方便:
- Meld:跨平台(Windows/macOS/Linux),支持并排对比、高亮差异,还能手动合并修改
- WinMerge:Windows平台专用,对文本对比的细节处理很友好,支持Cisco配置的层级识别
这些工具直接打开两个配置文件,就能直观看到config2和config1的所有差异,还能帮你快速把config2改回和config1一致的状态。
内容的提问来源于stack exchange,提问作者Akshay J
相关产品推荐
相关产品推荐

