Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Transferir archivos con Junos PyEZ

RESUMEN Utilice Junos PyEZ para proteger archivos de copia (SCP) entre el host local y un dispositivo Junos.

Junos PyEZ proporciona utilidades que le permiten realizar tareas de administración de archivos en dispositivos Junos. Puede utilizar la clase PyEZ jnpr.junos.utils.scp.SCP de Junos para proteger archivos de copia (SCP) entre el host local y un dispositivo Junos.

Los SCP open() métodos y close() establecen y terminan la conexión con el dispositivo. Como resultado, si la aplicación cliente sólo realiza operaciones de copia de archivos, puede omitir llamadas a los Device open() métodos y close() . Las instancias de la SCP clase se pueden utilizar como administradores de contexto, que llaman automáticamente a los open() métodos y close() . Por ejemplo:

SCP permite realizar un seguimiento del progreso de las transferencias mediante el progress parámetro. De forma predeterminada, SCP no imprime mensajes de progreso. Se establece progress=True para imprimir mensajes de progreso predeterminados a intervalos de finalización de transferencia del 10 por ciento o superior.

Como alternativa, puede definir una función personalizada para imprimir mensajes de progreso y, a continuación, establecer el progress parámetro igual al nombre de la función. La definición de la función debe incluir dos parámetros correspondientes a la instancia del dispositivo y al mensaje de progreso. Por ejemplo:

El siguiente programa de ejemplo transfiere los archivos scp-test1.txt y scp-test2.txt del host local al directorio /var/tmp del dispositivo de destino y, a continuación, transfiere el archivo de registro de mensajes del dispositivo de destino a un directorio de registros en el host local. Se cambia el nombre del registro de mensajes para anexar el nombre de host del dispositivo al nombre de archivo. En el ejemplo se utilizan claves SSH, que ya están configuradas en el host local y en el dispositivo, para la autenticación.

Para fines de comparación, el programa utiliza tanto los mensajes de progreso predeterminados como los mensajes personalizados, que se definen en la función denominada log, para realizar un seguimiento del progreso de las transferencias.

El progreso de las transferencias se envía a la salida estándar. El resultado predeterminado (progress=True) incluye el nombre del dispositivo, el archivo que se está transfiriendo y el progreso de la transferencia en bytes y como porcentaje.

La función personalizada produce un resultado similar en este caso.

Después de ejecutar el programa, emita el file list comando en el dispositivo de destino para verificar que los archivos scp-test1.txt y scp-test2.txt se copiaron en el directorio correcto.

En el host local, el archivo de registro de mensajes , cuyo nombre se cambia para incluir el nombre de host del dispositivo, debe estar presente en el directorio de registros .

De forma predeterminada, Junos PyEZ consulta el archivo de configuración SSH predeterminado en ~/.ssh/config, si existe. Sin embargo, puede especificar un archivo de configuración SSH diferente al crear la instancia de dispositivo incluyendo el ssh_config parámetro en la lista de Device argumentos. Por ejemplo:

Además, cuando se incluye el ssh_private_key_file parámetro en la lista de Device argumentos para definir un archivo de clave privada SSH específico para la autenticación, la instancia utiliza el mismo archivo de clave para la SCP autenticación al transferir archivos.

La SCP clase también proporciona compatibilidad con ProxyCommand, que permite transferir archivos desde el host local al dispositivo de destino a través de un host intermediario compatible con netcat. Esto es útil cuando solo puede iniciar sesión en el dispositivo de destino a través del host intermedio. Para configurar ProxyCommand, agregue la información adecuada al archivo de configuración SSH. Por ejemplo: