【问题标题】:Extract output of Juniper Devices and save to dictionary file via netmiko python提取 Juniper 设备的输出并通过 netmiko python 保存到字典文件
【发布时间】:2019-01-28 04:27:55
【问题描述】:

我使用 netmiko 和 ssh 运行我的脚本到瞻博网络设备。该脚本运行命令以获取设备信息,例如主机名、型号等。然后将输出保存到字典中。

代码的打印输出结果空间太大,输出无法正确保存到字典中

这是代码的打印输出结果

Hostname: vcx.lab01

{master}

Model: t640

{master}

Junos: 15.1R7-S1

{master}

如上所示,第一个命令输出和第二个命令输出之间有很多空格/间隙,每个命令都以 {master} 结尾。

下面是直接从 Juniper 路由器输出的键入命令

usr12@vcx.lab01> show version | match Hostname
Hostname: vcx.lab01

{master}

usr12@vcx.lab01> show version | match Model
Model: t640

{master}

usr12@vcx.lab01> show version | match Junos:
Junos: 15.1R7-S1

{master}

即使我在瞻博网络路由器上运行相同的命令时也会遇到相同的空间问题。

因此,当我将瞻博网络设备的每个输出保存到我​​的字典时,它会像下面这样保存

Hostname,Model,Version^M
"
Hostname: vcx.lab01

{master}","
Model: t640

{master}","
Junos: 15.1R7-S1

{master}"^M

我希望打印输出干净,没有空格,也没有像下面这样的 {master}

Hostname: vcx.lab01
Model: t640
Version: 15.1R7-S1

我想要字典文件如下

Hostname,Model,Version
vcx.lab01,t640,15.1R7-S1

我真的需要你的帮助来告诉我我可以做些什么来克服这个问题,请帮助我。谢谢

【问题讨论】:

  • 嗨,仍然没有运气......任何人都可以提供进一步的建议。我不能使用 PyEZ,因为设备没有启用 netconf,不幸的是,启用此功能超出了我的控制范围。因此,目前唯一的方法是使用 connection.send_command()。获取并提取所需数据并尝试将其保存在字典中。谢谢

标签: python csv ssh juniper


【解决方案1】:

只是为了分享解决方案

我使用 re.sub() 和字符串切片,能够逐行获取干净的数据,没有任何空白和 {master} 状态。

谢谢。我希望这也可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2019-05-05
    相关资源
    最近更新 更多