在Windows上通过PuTTY进行ssh脚本编写

4

我需要在Windows机器上编写MySQL恢复脚本,用于从Linux机器上进行数据恢复。我已经安装了Putty且知道其具有SSH功能。以下是我的脚本内容:

C:\Progra~1\Putty\putty.exe -ssh root@10.1.2.3 && mysql -u USER -pPASS db < /tmp/dump.sql

我在编写脚本时遇到的问题是putty会打开一个新窗口并将控制权转移到那里,因此任何在此之后的操作都无法实现。

putty.exe -ssh 

没有任何作用。


PuTTY可能不是你想在这里使用的工具。 - cdhowie
2
使用明文形式编写带有根密码的脚本是一个不好的主意。 - Douglas B. Staple
是的,它不会是root,就像密码不会是PASS :) - mvd
1个回答

7
您可以使用-m选项指定一个包含在远程连接上运行的命令的文件。
例如:
C:\Progra~1\Putty\putty.exe -ssh -m C:\cmd.txt root@10.1.2.3

C:\cmd.txt 的内容

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

来自PuTTY文档

3.8.3.6 `-m': 从文件中读取远程命令或脚本

-m'选项执行的功能类似于PuTTY配置框中SSH面板中的远程命令'框(参见第4.18.1节)。但是,`-m'选项希望得到一个本地文件名,并将从该文件中读取命令。

对于一些服务器(特别是Unix系统),甚至可以在此文件中放置多行并按顺序执行多个命令或整个shell脚本;但这可以说是一种滥用,不能保证适用于所有服务器。特别是已知不适用于某些'嵌入式'服务器,例如Cisco路由器。

此选项不适用于文件传输工具PSCP和PSFTP。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接