con valores basura en salida de cli SSH remota a través de paramiko
mientras usan la biblioteca de paramiko de Python para las conexiones SSH y la recuperación de salida de la CLI de una máquina remota, los usuarios pueden encontrar valores basura no tantados intercambiados con la salida desalentada. Estos valores, a menudo en forma de códigos de escape ANSI como "\ x1b [2j \ x1b [1; 1h", pueden abarrotar la salida y obstaculizar su usabilidad.
Comprender la fuente de los valores basura
contra el suposición de que son basura, estos códigos de escape son vitales para la pantalla de salida adecuada en un entorno térmico. Proporcionan instrucciones al terminal sobre cómo formatear el texto, mover el cursor, etc. Sin embargo, si no está utilizando un terminal interactivo, estos códigos pueden ser problemáticos.
SOLUCIÓN: Ejecución de comandos interactivamente
por defecto, el método de paramiko sshclient.invoke_shell inicia una sesión terminal interactiva, que lleva a la inclusión de los códigos de escape. Para eliminar esto, cambie al método EXEC_COMMAND, que ejecuta comandos sin un Pseudo Terminal (a menos que explícitamente habilitado):
stdin, stdout, stderr = client.exec_command('ls')
[&] Debe usar el canal "Shell", puede crearlo manualmente sin una pseudo terminal. Además, puede usar la siguiente solución para eliminar las secuencias de escape de la salida de cadena: import output = re.sub (r '(\ x1b \ [.*? M)', '', output)
Decode Outputing Encoding
import re
output = re.sub(r'(\x1b\[.*?m)', '', output)
Tenga en cuenta que el carácter "U" precede a la salida de cadena en la pregunta de la pregunta denota la codificación de Unicode. Esto es necesario para manejar caracteres no ASCII en la salida. Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3