Подтвердить что ты не робот

Лучший способ для script удаленных SSH-команд в пакетном режиме (Windows)

Я ищу script что-то в пакете, которое нужно будет запускать удаленные команды ssh в Linux. Я бы хотел, чтобы результат вернулся, поэтому я могу либо отображать его на экране, либо записывать его.

Я попробовал putty.exe -ssh [email protected] -pw password -m command_run, но он ничего не возвращает на моем экране.

Кто-нибудь сделал это раньше?

4b9b3361

Ответ 1

Переключатель -m PuTTY принимает путь к файлу скрипта в качестве аргумента, а не к команде.

Ссылка: https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-m

Поэтому вам нужно сохранить команду (command_run) в текстовом файле (например, c:\path\command.txt) и передать это в PuTTY:

putty.exe -ssh [email protected] -pw password -m c:\path\command.txt

Хотя обратите внимание, что вы должны использовать Plink (инструмент подключения командной строки из пакета PuTTY). Это консольное приложение, поэтому вы можете перенаправить его вывод в файл (что вы не можете сделать с PuTTY).

Синтаксис командной строки идентичен, добавлено перенаправление вывода:

plink.exe -ssh [email protected] -pw password -m c:\path\command.txt > output.txt

См. Использование средства подключения к командной строке Plink.

И с помощью Plink вы можете фактически предоставить команду непосредственно в командной строке:

plink.exe -ssh [email protected] -pw password command > output.txt

Похожие вопросы:
Автоматизация запуска команды в Linux из Windows с помощью PuTTY
Выполнение команды в Plink из командного файла

Ответ 2

Вы также можете напрямую использовать Bash on Ubuntu on Windows. Например.

bash -c "ssh -t [email protected] 'cd /; sudo my-command'"

Комментарий Мартина Прикрила ниже:

-t позволяет эмуляцию терминала. Если вам нужна эмуляция терминала для sudo, зависит от конфигурации (и по умолчанию вам это не нужно, а многие дистрибутивы переопределяют значение по умолчанию). Наоборот, многие другие команды нуждаются в эмуляции терминала.

Ответ 3

В качестве альтернативного варианта вы можете установить OpenSSH http://www.mls-software.com/opensshd.html, а затем просто ssh [email protected] -pw password -m command_run

Изменить: после ответа от user2687375 при установке выберите только клиент. Как только это будет сделано, вы сможете запустить SSH из команды.

Затем вы можете создать пакет ssh script, например

ECHO OFF
CLS
:MENU
ECHO.
ECHO ........................
ECHO SSH servers
ECHO ........................
ECHO.
ECHO 1 - Web Server 1
ECHO 2 - Web Server 2
ECHO E - EXIT
ECHO.

SET /P M=Type 1 - 2 then press ENTER:
IF %M%==1 GOTO WEB1
IF %M%==2 GOTO WEB2
IF %M%==E GOTO EOF

REM ------------------------------
REM SSH Server details
REM ------------------------------

:WEB1
CLS
call ssh [email protected]
cmd /k

:WEB2
CLS
call ssh [email protected]
cmd /k