咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

注:本文借鉴了 @萝卜橙子西红柿 的文章,链接如下:萝卜橙子西红柿:华为交换机Nornir+TextFSM自动化巡检输出excel报告


需求:通过python自动化巡检华为交换机,然后将交换机的display interface description命令输出的内容写入到excel中


思路:


1、通过nornir遍历交换机输出display interface description命令的内容


2、通过textfsm筛选出想要的内容


3、将筛选出的内容写入excel表中


正文:


1、代码部分


其他文件可以参考之前的文章J-Hidden:textfsm+netmiko+nornir(MAC版本),例如hosts.yaml以及config.yaml设置。


左侧是生成的excel文件,右侧为代码部分

因为我是企业网络,可利用交换机只有十几台(堆叠后算一台),其他都是傻瓜交换机。所以不能将nornir的能力发挥极致,设备多的朋友可以试一试


运行结果,时间为12秒

打开excel文件检查下结果看看


可以看到已经实现了我们的要求


代码处容易出现的坑:


1、当初在写excel保存的文件名时,也就是这一句


df.to_excel(file_time + '_' + f'{task.host.hostname}'+'.xlsx', sheet_name=f'{task.host.name}', index=False)

当时写的是


df.to_excel(file_time + '/' + f'{task.host.hostname}'+'.xlsx', sheet_name=f'{task.host.name}', index=False)

会报错,提示文件不存在。但是当时想的是我需要保存的文件,为什么要先生成文件夹呢?


其实原因是/,‘/’在路径中其实代表目录的分解符,当写入/的时候他就认为是需要保存在filename的文件夹下,找不到自然会显示不存在,解决办法可以是写成我上面那一种,也可以在代码前先新建一个file_name的文件夹


问题:有答案的可以提供下


虽然现在写出来一帆风顺,但是中间还是有几个问题任然没有解决,如果有好的方法的同学可以在评论区讨论下


1、在使用nornir_netmiko的时候,output = task.run(netmiko_send_command, command_string='display interface description', use_textfsm=True) 这一句会把循环默认执行了,无法把生成excel的代码插入,所以当时在这卡了很久。后面还是选择单独的netmiko模块