首頁  >  文章  >  後端開發  >  如何解決 Unix 指令執行中 Paramiko 中的「 not found」錯誤?

如何解決 Unix 指令執行中 Paramiko 中的「 not found」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-21 07:02:30357瀏覽

How to Resolve 找不到「Paramiko 執行Unix 指令時發生錯誤?」 /> 未找到「Unix 指令執行的Paramiko 出錯?」 />

在Paramiko 中執行「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix 指令時出現「Unix」指令時出現「Unix」指令時出現「Unix」指令時出現「Unix 指令時出現「Unix 指令」時出現「Unix 指令執行的Paramiko 錯誤」指令時出現「Unix 指令時出現「Unix 指令 not found」錯誤

Python 的Paramiko 函式庫在嘗試使用exec_command 執行某些Unix 指令時可能會遇到困難。具體地,可能出現錯誤「sh::notfound」。雖然“ls”等簡單命令可能會成功執行,但“sesu”等特殊命令會失敗。

根本原因

Paramiko 中的 exec_command 函數預設不執行shell 處於「登入」模式或分配一個偽終端。這會導致取得與常規 SSH 互動式會話不同的啟動腳本集。

幾個解可以解決此問題:

  • 使用完整路徑:指定指令的完整路徑,例如“/bin/sesu test”。
  • 設定 PATH 環境變數:確保系統 PATH 包含包含執行檔的目錄。
  • 透過登入 shell 執行指令: 使用「--login」開關,例如「bash --login -c "sesu test""。
  • 修改指令的環境:使用「PATH =」「$PATH;/path/to/sesu」等語法在指令本身內設定特定的環境變數「&& sesu test」。
  • 強制偽終端分配:在 exec_command 中使用「get_pty」參數,但要注意潛在的副作用。

其他注意事項

  • LD_LIBRARY_PATH 和共享物件位置等環境變數也可能會出現問題。
  • 請參閱連結資源以取得進一步的見解和替代方法。

以上是如何解決 Unix 指令執行中 Paramiko 中的「 not found」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn