Скрипт через ssh через шпатлевку на windows

Мне нужно написать сценарий восстановления mysql для Linux-машины с Windows-машины. У меня есть замазка, и я знаю, что у нее есть возможность ssh. Вот что у меня есть:

C:\Progra~1\Putty\putty.exe -ssh [email protected] && mysql -u USER -pPASS db < /tmp/dump.sql

Моя проблема в написании скрипта заключается в том, что шпатлевка открывает новое окно и передает туда управление, так что все, что последует

putty.exe -ssh 

ничего не делает.


person mvd    schedule 04.10.2012    source источник
comment
PuTTY, вероятно, не тот инструмент, который вы хотите использовать здесь.   -  person cdhowie    schedule 05.10.2012
comment
писать сценарий с вашим корневым паролем в виде открытого текста — плохая идея.   -  person Douglas B. Staple    schedule 05.10.2012
comment
Да, это будет не root, как и пароль не будет PASS :)   -  person mvd    schedule 05.10.2012


Ответы (1)


Вы можете использовать параметр -m, чтобы указать файл, содержащий команду для запуска на удаленном соединении.

Пример:

C:\Progra~1\Putty\putty.exe -ssh -m C:\cmd.txt [email protected]

Содержание C:\cmd.txt

 mysql -u USER -pPASS db < /tmp/dump.sql

Из документации по Putty:

3.8.3.6 `-m': прочитать удаленную команду или сценарий из файла

Поле -m' option performs a similar function to theRemote command на панели SSH окна конфигурации PuTTY (см. раздел 4.18.1). Тем не менее, опция `-m' предполагает, что ей будет присвоено имя локального файла, и она будет считывать команду из этого файла.

На некоторых серверах (особенно в системах Unix) вы даже можете поместить несколько строк в этот файл и последовательно выполнить более одной команды или целый сценарий оболочки; но это, возможно, злоупотребление, и нельзя ожидать, что оно будет работать на всех серверах. В частности, известно, что не работает с некоторыми «встроенными» серверами, такими как маршрутизаторы Cisco.

Этот параметр недоступен в инструментах передачи файлов PSCP и PSFTP.

person drew010    schedule 04.10.2012