Невозможно выполнить команды с помощью библиотеки Ride-Robot-SSH - PullRequest
0 голосов
/ 28 мая 2019

Я изучаю варианты использования RIDE-Robot Framework для моего проекта.Здесь я использую библиотеку SSH.

Я пытаюсь войти на свой сервер, а затем пытаюсь выполнить некоторые команды

Вручную, я пытаюсь войти на сервер, а затем дать sudoвведите команду admin, а затем выполните набор команд.

Использование Ride - я использую ключевые слова Open Connection, Execute Command

Я могу войти на сервер с именем пользователя и паролем, но яЯ не могу выполнять команды.

Не могли бы вы помочь мне понять, как выполнять команды?

Я могу открыть Connection and Login с именем пользователя и паролем.

Paramiko

import paramiko    

from paramiko import SSHClient

ssh = SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('10.184.59.41', username='******', password='*******')

shell=ssh.invoke_shell()

shell.settimeout(0.5)

ssh.exec_command("sudo -u tradmin -E bash")

ssh.exec_command("/ThomsonReuters/apps/hillfarber")

****** Ride ******

Open Connection    10.184.59.41
Login    ${username}    ${password}
Execute Command    sudo - u tradmin -E bash
${stdout}=     Execute Command     /ThomsonReuters/tools/bin/adsmon -key 29 -get IDBFeed  c205xcmpdfh01.ECP_TUL.IDBFeed.IDBFeed PageCount

Невозможно выполнить команды, ошибка не отображается

1 Ответ

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

Каждый вызов Execute Command находится в новой оболочке - поэтому sudo с первого не влияет на пользователя во втором.См. Документацию по ключевым словам , там предлагается использовать ключевые слова Write и Read для непрерывности выполнения команд в одной и той же оболочке.

В качестве альтернативы вы можете объединить два вызова в одну команду - sudo ... adsmon ....

...