Как я могу получить отпечаток sendline ('ls -l') pexpect? - PullRequest
0 голосов
/ 05 мая 2019

Я использую pexpect для входа на сервер ssh:

child = pexpect.spawn('ssh root@40.24.24.29')
child.expect('Password:')
child.sendline('admin123456#789')

child.sendline('ls -l')

там я хочу получить распечатку команды ls -l.

как я могу получить результат для переменной?

1 Ответ

0 голосов
/ 05 мая 2019

pexpect имеет специальный класс для сессий SSH.См. документы

копирование / вставка ниже:

from pexpect import pxssh
import getpass
try:
    s = pxssh.pxssh()
    hostname = raw_input('hostname: ')
    username = raw_input('username: ')
    password = getpass.getpass('password: ')
    s.login(hostname, username, password)
    s.sendline('uptime')   # run a command
    s.prompt()             # match the prompt
    print(s.before)        # print everything before the prompt.
    s.sendline('ls -l')
    s.prompt()
    print(s.before)
    s.sendline('df')
    s.prompt()
    print(s.before)
    s.logout()
except pxssh.ExceptionPxssh as e:
    print("pxssh failed on login.")
    print(e)
...