Paramiko Exec_command 中出現Unix CommandNotFound 錯誤
透過Python 的Paramiko exec_command 命令您可能會遇到以下問題:遇到「命令未找到」錯誤。出現此問題的原因是 exec_command 方法通常不在「登入」模式下執行,導致與標準互動式 SSH 會話相比,會取得一組不同的環境變數和啟動腳本。
潛在解:
1。指定指令的完整路徑:
在 exec_command 參數中使用指令的完整路徑。例如,“/bin/sesu test”而不是“sesu test”。您可以在互動式 SSH 會話中使用「which」命令來確定完整路徑。
2.調整啟動腳本:
確保啟動腳本(例如 .bash_profile)為互動式和非互動式會話統一設定 PATH 環境變數。
3.利用--login 開關:
使用「--login」開關的登入shell 執行指令,例如「bash --login -c “ sesu test」。」
4。在指令中修改環境變數:
直接在指令本身內修改環境變數。在常見的Unix 系統中,適用以下語法:「PATH="$PATH;/path/to/sesu" && sesu test.」
5.強制偽終端分配(不建議):
使用get_pty=True 參數為exec 通道啟用偽終端分配。但是,這種方法可能會導致意外結果。
其他注意事項:
請參閱以下資源以取得更多資訊:
以上是如何解決 Python 的 Paramiko Exec_command 中的 Unix CommandNotFound 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!