Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Junos PyEZ 传输文件

Junos PyEZ 提供实用程序,使您能够在 Junos 设备上执行文件管理任务。您可以使用 Junos PyEZ jnpr.junos.utils.scp.SCP 类在本地主机和 Junos 设备之间保护复制 (SCP) 文件。

这些SCPopen()close()方法可以建立并终止与设备的连接。因此,如果客户端应用程序仅执行文件复制操作,则可以省略对和close()方法的Deviceopen()呼叫。该类的SCP实例可用作上下文管理器,自动调用open()close()方法。例如:

SCP 使您能够使用 progress 参数跟踪传输进度。默认情况下, SCP 不会打印进度消息。设置 progress=True 为以 10% 或更高的传输完成间隔打印默认进度消息。

或者,您可以定义自定义功能来打印进度消息,然后设置 progress 等于该功能名称的参数。功能定义应包含与设备实例和进度消息对应的两个参数。例如:

以下示例程序会将 scp-test1.txtscp-test2.txt 文件从本地主机传输到目标设备上的 /var/tmp 目录,然后将消息日志文件从目标设备传输到本地主机上 的日志 目录。消息日志将更名为将设备主机名附加到文件名。该示例使用已在本地主机上和设备上配置的 SSH 密钥进行身份验证。

为了进行比较,程序同时使用默认进度消息和在名为的 log功能中定义的自定义消息来跟踪传输的进展。

传输进度发送至标准输出。默认输出 (progress=True) 包括设备名称、正在传输的文件以及传输进度(以两个字节和百分比为百分比)。

在此情况下,自定义功能会产生类似的输出。

执行程序后,在目标设备上发出 file list 命令,验证 scp-test1.txtscp-test2.txt 文件是否被复制到正确的目录中。

在本地主机上,应在日志目录中显示消息日志文件,该文件已重命名为包含设备主机名。

默认情况下,Junos PyEZ 会在 ~/.ssh/config(如果存在)查询默认 SSH 配置文件。但是,在创建设备实例时,可以通过在参数列表中Device包括ssh_config参数来指定不同的 SSH 配置文件。例如:

此外,当在参数列表中Device包括ssh_private_key_file用于定义特定 SSH 私有密钥文件以进行身份验证的参数时,SCP实例在传输文件时使用相同的密钥文件进行身份验证。

SCP 类还支持代理通信,使您能够通过支持 netcat 的中介主机将文件从本地主机传输到目标设备。只能通过中间主机登录目标设备时,这很有用。要配置代理通信,请将相应信息添加至 SSH 配置文件。例如: