4

我需要从 Windows 机器编写 mysql 恢复 linux 机器的脚本。我有腻子,我知道它有 ssh 功能。这是我所拥有的:

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

我在编写脚本时遇到的问题是腻子会打开一个新窗口并将控制权转移到那里,所以接下来的任何事情

putty.exe -ssh 

不做任何事情。

4

1 回答 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

腻子文档

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

PuTTY 配置框的 SSH 面板中的“-m' option performs a similar function to the远程命令”框(参见第 4.18.1 节)。然而, `-m' 选项应该被赋予一个本地文件名,它会从那个文件中读取一个命令。

对于某些服务器(尤其是 Unix 系统),您甚至可以在该文件中放置多行并依次执行多个命令或整个 shell 脚本;但这可以说是一种滥用,并且不能期望在所有服务器上都有效。特别是,众所周知,它 不能与某些“嵌入式”服务器一起使用,例如 Cisco 路由器。

此选项在文件传输工具 PSCP 和 PSFTP 中不可用。

于 2012-10-04T22:19:15.960 回答