在后台使用plink转发本地端口并在本地计算机上执行命令

时间:2013-01-12 16:15:56

标签: windows batch-file ssh putty

我想编写一个批处理脚本,它将我机器上的本地端口转发到服务器dataexchange。我给了服务器我的公钥用于身份验证,我想使用plink,PuTTY的命令行SSH工具进行连接。

以下是我希望脚本执行的操作。

  1. 将本地端口3309转发至dataexchange:3306

  2. 在我的本地计算机上运行Java程序,该程序在dataexchange:3306上查询mysql数据库。

  3. 关闭端口。

  4. 我是批量写作的新手,但这是我认为应该工作的。我不知道如何在我的机器上批量运行Java程序,我不确定如何在运行后关闭plink。

    @ECHO OFF
    plink -L 3309:dataexchange:3306 -l myUser -N &
    java -jar myprog.java
    

1 个答案:

答案 0 :(得分:1)

您的示例中有一些落后的东西:

  • 您可能希望java程序连接到localhost:3306然后转发到远程dataexchange:3306
  • 然后,端口转发语法为:-L 3306:localhost:3306
  • 您需要在plink命令中连接主机。在这种情况下可能是myuser @ dataexchange
  • Windows中没有&项,start命令可以帮助您(Doc
  • java程序完成后,您可以使用taskkill /im plink.exe来终止plink隧道。 (但要注意,这会杀死当前正在运行的所有plink进程)
  • java命令可能也有错误,如果没有编译,则无法运行.java个文件。 (你自己编写了程序吗?然后先用javac
  • 编译它