Python Paramiko exec_command 中 Unix 命令失败并显示“Command Not Found”
使用 Python 的 Paramiko exec_command 执行 Unix 命令时,可能会遇到诸如“未找到”之类的错误。特别是在使用 sesu 命令时,而 ls 等其他命令执行成功时,会出现此问题。
根本原因
原因在于 SSHClient.exec_command 的默认行为,它不运行“登录”shell,也不为会话分配伪终端。因此,可能会运行不同的启动脚本,并且可能无法设置特定的环境变量。
可能的解决方案
要解决此问题,可以采取多种方法:
bash --login -c "sesu test"
PATH="$PATH;/path/to/sesu" && sesu test
stdin,stdout,stderr = ssh.exec_command('sesu test', get_pty=True)
其他注意事项
请参阅以下资源以获取更多见解:
以上是如何修复 Python Paramiko exec_command 中的'未找到命令”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!