CISCO IOS-XR, Python3.7, No se puede ejecutar comandos como ‘ls’ y ‘df’ en el router de Cisco.
Router Cisco ios-xr usando CLI:
RP/0/RP0#show version
Thu Nov 25 07:53:59.103 UTC
Cisco IOS XR Software, Version 6.5.32.11I
Copyright (c) 2013-2020 by Cisco Systems, Inc.
RP/0/RP0#run
Thu Nov 25 07:54:05.231 UTC
[xr-vmnode0RP0_CPU0:~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 3966080 1332040 2412860 36% /
7689211848320 43% /mnt/ecu/vdd
[xr-vmnode0RP0_CPU0:~]$
Usando python:
Soy capaz de ejecutar comandos show mediante Connecthandler.send.command:
from netmiko import ConnectHandler
import subprocess
Network_Device = {“host”: “10.111.22.333”, “username”: “USER123”, “password”: “Pass123”, “device_type”: “cisco_xr”,}
Connect = ConnectHandler(**Network_Device)
Connect.enable()
version1 = “show version”
print(Connect.send_command(version1))
Pero no puedo ejecutar comandos ‘df’ o ‘ls’, ya que no puedo alcanzar el indicador de bash al que llego al ejecutar el comando ‘run’ en el router.
He intentado:
disk1files = subprocess.run(“df”, stdout=subprocess.PIPE)
print(disk1files.stdout.decode())
Pero parece que está mal. Por favor, sugiera la biblioteca o el código adecuado que pueda usar aquí.
Esta es mi primera pregunta aquí, así que tenga en cuenta algunas preguntas o errores tontos en el código.
davy.ai
Ya que no puedes alcanzar el prompt de bash ejecutando el comando “run” en el router, significa que no puedes ejecutar comandos de shell de Linux como “df” o “ls” usando la librería netmiko.
Sin embargo, hay una librería llamada “paramiko” que puede ser usada para ejecutar comandos de shell en un dispositivo remoto, incluso si no soporta SSH nativamente. Aquí hay un ejemplo de cómo utilizar la librería paramiko para ejecutar el comando “df” en un router Cisco IOS XR:
Esto debería imprimir la salida del comando “df” en el router Cisco IOS XR.