Paramiko Exec_command での Unix CommandNotFound エラー
Python の Paramiko exec_command モジュールを介して「sesu」などの特定の Unix コマンドを実行すると、次のような問題が発生する可能性があります。 「コマンドが見つかりません」エラーが発生します。この問題は、通常、exec_command メソッドが「ログイン」モードで動作しないために発生します。その結果、標準の対話型 SSH セッションとは異なる環境変数と起動スクリプトのセットが取得されることになります。
考えられる解決策:
1.コマンドへのフル パスを指定します:
exec_command 引数でコマンドへのフル パスを使用します。たとえば、「sesu テスト」の代わりに「/bin/sesu テスト」を使用します。対話型 SSH セッション内で「that」コマンドを使用して完全パスを確認できます。
2.起動スクリプトの調整:
起動スクリプト (.bash_profile など) が対話型セッションと非対話型セッションの両方で PATH 環境変数を均一に設定していることを確認します。
3. --login スイッチを使用します:
「bash --login -c "sesu test" など、「--login」スイッチを指定したログイン シェルを使用してコマンドを実行します。
4.コマンドで環境変数を変更する:
コマンド自体内で環境変数を直接変更します。一般的な Unix システムでは、次の構文が適用されます: "PATH="$PATH;/path/to/sesu" && sesu test."
5. Force Pseudo Terminal Allocation (非推奨):
get_pty=True パラメータを使用して、実行チャネルの疑似端末割り当てを有効にします。ただし、この方法では予期しない結果が生じる可能性があります。
追加の考慮事項:
詳細については、次のリソースを参照してください。
以上がPython の Paramiko Exec_command での Unix CommandNotFound エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。