Pexpect - 静音ssh连接输出

Joa*_*edo 5 python ssh pexpect

我正在使用一个简单的pexpect脚本来ssh到远程机器并获取命令返回的值.有没有办法,pexpect或sshwise我可以用来忽略unix问候语?也就是说,来自

    child = pexpect.spawn('/usr/bin/ssh %s@%s' % (rem_user, host))
    child.expect('[pP]assword: ', timeout=5)
    child.sendline(spass)
    child.expect([pexpect.TIMEOUT, prompt])
    child.before = '0'
    child.sendline ('%s' % cmd2exec)
    child.expect([pexpect.EOF, prompt])

    # Collected data processing
    result = child.before
    # logon to the machine returns a lot of garbage, the returned executed command is at the 57th position
    print result.split('\r\n') [57]
    result = result.split('\r\n') [57]
Run Code Online (Sandbox Code Playgroud)

我怎样才能简单地得到返回值,忽略"最后一次成功登录"和"(c)版权"的东西,而不必关心价值正确的位置?

谢谢 !

Tam*_*más 5

如果您可以访问要登录的服务器,则可以尝试创建.hushlogin主目录中指定的文件.该文件的存在使标准的MOTD问候和类似的东西沉默.

或者,尝试ssh -T,这将完全禁用终端分配; 你不会得到shell提示符,但你仍然可以发出命令并阅读响应.

ServerFault上还有一个类似的线程可能对你有用.