如何使用Python制作脚本巡检设备,并将结果输出到excel,值得参考!

举报
wljslmz 发表于 2023/08/14 09:26:46 2023/08/14
【摘要】 本脚本使用了 pexpect 库来自动化 Telnet 登录到交换机并执行命令,然后将输出保存到文件中。如果你想要将输出存储到 Excel 文件中,你可以使用 openpyxl 库来实现。下面是一个将你提供的脚本与 Excel 输出结合的示例:import pexpectimport sysimport datetimeimport openpyxl# 定义交换机信息和命令switch_in...

本脚本使用了 pexpect 库来自动化 Telnet 登录到交换机并执行命令,然后将输出保存到文件中。如果你想要将输出存储到 Excel 文件中,你可以使用 openpyxl 库来实现。

下面是一个将你提供的脚本与 Excel 输出结合的示例:

import pexpect
import sys
import datetime
import openpyxl

# 定义交换机信息和命令
switch_info = {
    "ip": "x.x.x.x",
    "passwd": "xxxx",
    "name": "<F5-Core-S12508>",
    "name1": "---- More ----"
}

# 创建 Excel 工作簿和工作表
workbook = openpyxl.Workbook()
worksheet = workbook.active
worksheet.title = "Switch Inspection"

child = pexpect.spawn('telnet %s' % switch_info["ip"])
child.expect('login:')
child.sendline("admin")
child.expect('(?i)ssword:')
child.sendline(switch_info["passwd"])
child.expect(switch_info["name"])

# 执行命令并将输出写入 Excel
def execute_command(command):
    child.sendline(command)
    child.expect(switch_info["name1"])
    result = child.before.decode("utf-8")
    return result

# 执行各个命令并写入 Excel
commands = [
    "display power",
    "display version",
    "display environment",
    "display fan",
    "display cpu-usage",
    "display memory",
    "display interface brief",
    "dis logbuffer",
    "display ip routing-table",
    "display irf link",
]
for command in commands:
    output = execute_command(command)
    worksheet.append([command, output])

child.sendline("quit")
child.expect(pexpect.EOF)

# 保存 Excel 文件
excel_filename = f"switch_inspection_{datetime.date.today().strftime('%Y%m%d')}.xlsx"
workbook.save(excel_filename)
print(f"Inspection results saved to {excel_filename}")

在这个示例中,我使用了 openpyxl 库来创建 Excel 工作簿和工作表,并在每次执行命令后将输出写入 Excel 表格中。你可以根据实际需要进一步调整和优化这个脚本,确保交换机命令的执行和输出的写入都能符合你的要求。同时,记得确保在运行脚本之前安装了所需的库:

pip install pexpect openpyxl

自动化与 Telnet 进行交互时,稳定性和错误处理非常重要,因为网络环境可能会导致意外情况。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。