#python #windows #mobaxterm
#python #Windows #mobaxterm
Вопрос:
У меня есть скрипт на Python, который использует subprocess
для вызова MobaXterm и использует его для запуска команды на мой сервер через SSH. Скрипт отлично работает при использовании подсистемы Windows для Linux (WSL), но дает сбой при использовании Moba. Это код:
import subprocess
moba_path = "C:Program Files (x86)MobatekMobaXtermMobaXterm.exe"
subprocess.run(f'{moba_path} -exec ssh my_server "mkdir test_dir"')
Он открывает окно MobaXterm, но не показывает никаких признаков выполнения команды. Я проверил, и команда не была выполнена (папка не была создана).
Есть идеи?
Комментарии:
1. попробуйте это, потому что это работает для моего подпроцесса. Popen([«ssh», «%s» % HOST, COMMAND], shell=False, стандартный вывод=подпроцесс. КАНАЛ, stderr= подпроцесс. КАНАЛ)
2. Это использует только «ssh», установленный в моей системе Windows. Дело в том, что моя конфигурация ssh очень запутанная, и я бы предпочел использовать Moba или WSL (какую-нибудь систему Linux), поскольку я уже знаю их конфигурации.
Ответ №1:
Итак, я нашел способ выполнять свои команды с помощью Moba программным способом, используя -newtab
команду. Запускается новая вкладка, на которой затем выполняется указанная команда.
import subprocess
moba_path = "C:Program Files (x86)MobatekMobaXtermMobaXterm.exe"
subprocess.run(f'{moba_path} -newtab ssh my_server "mkdir test_dir"')