0

我正在尝试将配置推送到多个瞻博网络设备中。但作为测试,我进入配置模式并更改配置。

client1 = paramiko.SSHClient()

client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client1.connect(IP, username=username, password=password)

configure = client1.invoke_shell()

configure.send('configure')

configure.send('set interfaces ge-0/0/10 description "test"')

configure.send('show | compare')

print configure.recv(1000)

client1.close()

我期待输出如下:

[edit interfaces ge-0/0/10]
-   description "Internet Simulation Interface connect to QFX ge-0/0/21";
+   description test;

但实际输出是这样的:

JUNOS 12.3X50-D35 built 2013-10-22 07:02:18 UTC


4

4 回答 4

0

我建议您使用 Juniper 的 Junos Eznc 库,用于 junos 设备。Junos-Eznc GitHub

于 2018-02-01T22:27:43.180 回答
0

你可以试试下面提到的片段吗?有时,您需要等待几秒钟才能在标准输入上接收一些字节。

configure.send('show | compare')

time.sleep(2)

print configure.recv(1000)
于 2019-03-10T04:51:45.697 回答
0

您正在获得 的第一行Juniper CLI,尝试在以下代码中编码更高的接收字节:

print configure.recv(1000)

尝试:

print configure.recv(4096)

让我知道。

于 2017-12-31T16:06:32.370 回答
0

你可以在发送命令之前加上'cli'吗?

configure = client1.invoke_shell ()
configure.send ('cli') <--- Add
configure.send ('configure')

当您通过 SSH 连接到 JUNOS 时,您首先处于 shell 模式。因此您可以使用cli.

(lab-network) bash-3.2$ ssh root@localhost -p 2201 
Password:
--- JUNOS 12.1X47-D15.4 built 2014-11-12 02:13:59 UTC
root@vsrx1% cli
root@vsrx1> configure 
Entering configuration mode

[edit]
root@vsrx1# 
于 2020-12-14T07:31:28.187 回答