É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!