2015-01-29 2 views
1

Есть ли возможность выполнить приложение, находящееся на удаленном компьютере Windows, как это? На удаленном хосте работает SSH-сервер Cygwin, и я запускаю ниже сценарий python с моего ноутбука. Приложение "ХТ-ocd.exe" находится по указанному пути "с/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3"Запуск приложения на удаленном сервере с использованием Python SSH

ssh.connect('135.24.200.100',username = 'cyg_server',password = 'force') 
stdin,stdout,stderr = ssh.exec_command("cd '/cygdrive/c/Program Files  (x86)/Tensilica/Xtensa OCD Daemon 9.0.3';./xt-ocd.exe") 

Данный скрипт не работает. Я не уверен, нахожусь ли я на правильном пути. Пожалуйста помоги.

+0

Вы уверены, что conmer пространств в вашем пути является правильным? 'Program Files (x86)' кажется странным для меня, поскольку он содержит 5 пробелов в вашем примере (не знаю, почему комментарий здесь не отображается правильно) – glglgl

ответ

0

Я считаю, что проблема связана с используемой вами , это не команда, а функция оболочки, и у вас нет оболочки. Попробуйте выполнить следующие действия:

ssh.exec_command('/cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3/xt-ocd.exe') 
+0

Пробовал ваше предложение, это был результат: (>>, >>, >>) – user3565150

+0

Я пробовал это сейчас: stdin, stdout, stderr = ssh.exec_command ('/ cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3/xt-ocd.exe') – user3565150

+0

И вывод был: stderr.readlines() [u "bash: -c: строка 0: синтаксическая ошибка около неожиданного токена' ('\ n ", u" bash: -c: line 0: '/ cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3/xt-ocd.exe '\ n "] – user3565150

0

Вы также можете попробовать полный путь к запуску программы вместо того, чтобы сменить рабочий каталог, а затем запустить его.

1

Линия "cd '/cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3';./xt-ocd.exe" фактически не представляет собой одну команду, но две разные (cd и xt-ocd). Это должно интерпретироваться оболочкой.

Если рабочий каталог не имеет значения, вы можете попытаться использовать полный путь к исполняемому файлу, как предложено Iskren. Но если вам действительно нужно установить рабочий каталог, вы можете попробовать:

stdin,stdout,stderr = ssh.exec_command("bash -c \"cd '/cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3';./xt-ocd.exe\"")

+0

Serge, я получил этот вывод: stdin, stdout, stderr = ssh.exec_command (" bash -c \ "cd'/cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3 '; ./ xt-ocd.exe \ "") stderr.readlines() [u'bash: строка 0: cd:/cygdrive/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3: Нет такого файла или каталога \ n ', u'bash: ./xt-ocd.exe: Нет такого файла или каталога \ n'] – user3565150

+0

Серж, не меняя каталог: stdout.readlines() [u '/ var/empty \ n'] – user3565150

+0

Сообщение об ошибке: stderr.readlines() [u'bash: строка 0: cd:/cygdriv e/c/Program Files (x86)/Tensilica/Xtensa OCD Daemon 9.0.3: Нет такого файла или каталога \ n '] – user3565150

Смежные вопросы