ssh remote-Computer und führen Sie das Programm 'ls-l' mit pexpect

Wollte ich ssh remote-Computer und führen Sie die ls-l mit pexpect. ich bin ein system-Ingenieur, erlernen der python-Sprache, und haben keine Kenntnisse über die Codierung. Könnte bitte jemand mir helfen, in diesem. Vielen Dank im Voraus.

Mein code:

import pexpect
child = pexpect.spawn('/usr/bin/ssh [email protected]')
child.expect('password:', timeout=120)
child.sendline('pass123')
child.expect ('prompt# ')
#child.maxread=100000
child.sendline ('uname -a')
child.expect ('prompt# ')
print child.before, child.after

Unten ist die Fehler-Ausgabe beim ausführen des obigen Codes.

usr/bin/python /root/PycharmProjects/IS_LAB/pexpect-test.py
Traceback (most recent call last):
  File "/root/PycharmProjects/IS_LAB/pexpect-test.py", line 36, in <module>
    child.expect ('prompt# ')
  File "/usr/lib/python2.6/site-packages/pexpect/__init__.py", line 1451, in expect
    timeout, searchwindowsize)
  File "/usr/lib/python2.6/site-packages/pexpect/__init__.py", line 1466, in expect_list
    timeout, searchwindowsize)
  File "/usr/lib/python2.6/site-packages/pexpect/__init__.py", line 1568, in expect_loop
    raise TIMEOUT(str(err) + '\n' + str(self))
pexpect.TIMEOUT: Timeout exceeded.
<pexpect.spawn object at 0x9b4110>
version: 3.3
command: /usr/bin/ssh
args: ['/usr/bin/ssh', '[email protected]']
searcher: <pexpect.searcher_re object at 0x9b4450>
buffer (last 100 chars): 'cape.canonical.com/\r\n\r\nLast login: Tue Jun 16 10:26:18 2015 from 192.168.32.1\r\r\nroot@ubuntu14:~# '
before (last 100 chars): 'cape.canonical.com/\r\n\r\nLast login: Tue Jun 16 10:26:18 2015 from 192.168.32.1\r\r\nroot@ubuntu14:~# '
after: <class 'pexpect.TIMEOUT'>
match: None
match_index: None
exitstatus: None
flag_eof: False
pid: 13015
child_fd: 3
closed: False
timeout: 30
delimiter: <class 'pexpect.EOF'>
logfile: None
logfile_read: None
logfile_send: None
maxread: 2000
ignorecase: False
searchwindowsize: None
delaybeforesend: 0.05
delayafterclose: 0.1
delayafterterminate: 0.1

Process finished with exit code 1
  • Waren Sie sich bewusst, dass Sie können ausführen den Befehl über ssh von lokalen? Sie nicht brauchen kann pexpect überhaupt - fügen Sie einfach Ihren Befehl wie ssh user@remote ls -l
InformationsquelleAutor eng | 2015-06-16
Schreibe einen Kommentar