ホームページ > バックエンド開発 > Python チュートリアル > Paramiko SSH 出力のジャンク値を削除するにはどうすればよいですか?

Paramiko SSH 出力のジャンク値を削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-19 07:12:02
オリジナル
1123 人が閲覧しました

How to Eliminate Junk Values in Paramiko SSH Output?

Paramiko を使用した SSH 出力からのジャンク値の除去

Paramiko の SSH ライブラリを介してリモート マシンの CLI から出力を取得すると、要求されていない文字が発生する可能性があります「x1b[2J×1b[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>
ログイン後にコピー

Unicode エンコーディングに関する注意

出力文字列の「u」プレフィックスは Unicode エンコーディングを示します。保存されます。

以上がParamiko SSH 出力のジャンク値を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート