python-3.x - pxssh错误 'could not synchronize with original prompt'

标签 python-3.x

在使用 pxssh 进入远程服务器运行 unix 命令(如 uptime )时,我收到以下错误

Traceback (most recent call last):

文件“./ssh_pxssh.py”,第 33 行,位于 Login_remote(主机名、用户名、密码) 文件“./ssh_pxssh.py”,第 12 行,位于 login_remote 中 如果不是 s.login(主机名、用户名、密码): 文件“/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pexpect/pxssh.py”,第 278 行,登录

**raise ExceptionPxssh ('could not synchronize with original prompt')

pexpect.pxssh.ExceptionPxssh:无法与原始提示同步**

第 33 行是我在 main 中调用此函数的地方。

我正在使用的功能在这里:

def login_remote(hostname, username, password):
    s = pxssh.pxssh()
s.force_password = True
if not s.login(hostname, username, password, auto_prompt_reset=False):
    print("ssh to host :"+ host + " failed")
    print(str(s))
else:
    print("SSH to remote host " + hostname + " successfull")
    s.sendline('uptime')
    s.prompt()
    print(s.before)
    s.logout()

每次运行脚本时都不会出现错误。相反,它是间歇性的。我运行脚本的时候有十分之七的情况出现。

最佳答案

我通过在登录函数中添加 sync_multiplier 参数解决了这个问题。

s.login(hostname, username, password, sync_multiplier=5 auto_prompt_reset=False)

请注意,sync_multiplier 是执行成功同步的通信超时参数。它会尝试读取提示至少 sync_multiplier 秒。 此方法的最坏情况性能是 sync_multiplier * 3 秒。

我个人设置了sync_multiplier=2,但这取决于我所使用的系统上的通信速度。

关于python-3.x - pxssh错误 'could not synchronize with original prompt',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054030/

相关文章:

python - 保存或读取 XML 文件不起作用

python - Python 的类设计 - 参数错误

python - 为什么 pandas Dataframe.to_csv 的输出与 Series.to_csv 不同?

python - 如何转换Tensorflow循环中的循环?

Python 在匹配之前加入匹配行

python - 类型错误:在字符串格式化期间、将数据上传到 Web sql 服务器期间,并非所有参数都被转换,

Python、MySQL 删除行不起作用

python - 如何根据Python创建时间3分钟后删除Mongodb中的文档

python - 新手程序员寻求指导

python - 如何用seaborn热图中的词汇填充xticklabels?