Maison  >  Article  >  développement back-end  >  Comment supprimer les valeurs indésirables de la sortie SSH à l'aide de Paramiko ?

Comment supprimer les valeurs indésirables de la sortie SSH à l'aide de Paramiko ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 07:13:30876parcourir

How to Remove Junk Values from SSH Output Using Paramiko?

Élimination des valeurs indésirables de la sortie SSH à l'aide de Paramiko

Lors de l'utilisation de la bibliothèque Paramiko de Python pour se connecter en SSH à une machine distante et récupérer la sortie de ligne de commande, vous pouvez rencontrer des caractères « indésirables » inattendus dans la réponse, tels que [2Jx1b[1;1H et u. Cela est dû à l'utilisation de codes d'échappement ANSI, destinés à améliorer l'affichage des résultats dans un terminal interactif.

Utiliser la méthode d'exécution correcte

SSHClient de Paramiko .invoke_shell demande automatiquement un pseudo-terminal, ce qui peut entraîner l'inclusion de ces codes d'échappement. Pour l'exécution automatisée des commandes, il est préférable d'utiliser SSHClient.exec_command, qui n'attribue pas de pseudo-terminal par défaut.

Solution de contournement pour les sessions interactives

Comme solution de contournement pour sessions interactives, vous pouvez supprimer les séquences d'échappement ANSI à l'aide d'une bibliothèque Python. Cependant, il s'agit d'un hack et peut ne pas résoudre complètement d'autres problèmes liés à l'utilisation d'un terminal interactif.

Création manuelle du canal Shell

Si vous avez besoin d'utiliser le shell canal en raison des exigences spécifiques du serveur, vous pouvez créer le canal manuellement sans utiliser Invoke_shell. Cela permet d'éviter l'allocation d'un pseudo terminal.

Encodage Unicode

Enfin, le préfixe u dans la sortie indique que la chaîne est en encodage Unicode. Ceci est important pour gérer correctement les caractères de la chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn