Python 的 Paramiko 中的 Unix 命令出现“未找到”错误
尝试使用 Python 在 Unix 服务器上执行命令“sesu”时Paramiko exec_command 时,用户可能会遇到错误消息“sh: sesu: not found”。此问题仅在某些命令(例如“sesu”)中出现,而其他命令(例如“ls”)可以按预期运行。
此错误源于 SSHClient.exec_command 中的默认行为,该行为不会运行shell 处于“登录”模式并且不分配伪终端。因此,命令执行可能与交互式 SSH 会话不同,后者会获取或使用某些启动脚本和环境变量。
可能的解决方案
建议使用以下解决方案按优先顺序排列:
/bin/sesu test
bash --login -c "sesu test"
PATH="$PATH;/path/to/sesu" && sesu test
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)
以上是为什么某些 Unix 命令在 Python 的 Paramiko Exec_Command 中返回'未找到”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!