>  기사  >  백엔드 개발  >  Paramiko SSH 출력에서 ​​정크 값을 제거하는 방법은 무엇입니까?

Paramiko SSH 출력에서 ​​정크 값을 제거하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-19 07:12:02981검색

How to Eliminate Junk Values in Paramiko SSH Output?

Paramiko를 사용하여 SSH 출력에서 ​​정크 값 제거

Paramiko의 SSH 라이브러리를 통해 원격 시스템의 CLI에서 출력을 가져올 때 원치 않는 문자가 나타날 수 있습니다. "x1b[2Jx1b[1;1H" 및 "u"와 같은 것입니다. 이는 터미널 클라이언트에 대한 출력을 장식하는 ANSI 이스케이프 코드입니다.

원인 및 해결 방법

Paramiko의 SSHClient.invoke_shell은 의사 터미널을 요구하며 결과적으로 이러한 이스케이프가 나타납니다. 코드. 자동화된 명령 실행의 경우 기본적으로 의사 터미널을 할당하지 않는 SSHClient.exec_command를 대신 사용하는 것이 좋습니다.

<code class="python">stdin, stdout, stderr = client.exec_command('ls')</code>

대체 솔루션

"shell" 채널은 필수입니다. 의사 터미널 없이도 가능하지만 Paramiko의 SSHClient.invoke_shell은 이 기능을 제공하지 않습니다. 대신 "쉘" 채널을 수동으로 생성할 수 있습니다.

<code class="python"># Not supported by Paramiko SSHClient.invoke_shell
channel = ssh_client.get_transport().open_channel("session")
channel.exec_command("ls")</code>

유니코드 인코딩 참고

출력 문자열의 "u" 접두사는 유니코드 인코딩을 나타냅니다. 보존하세요.

위 내용은 Paramiko SSH 출력에서 ​​정크 값을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.