通过 Plink 打开 SSH 隧道,通过命令行批处理文件打开 运行 R 脚本

Open SSH tunnel via Plink and run R Scripts via command line batch file

我正在尝试通过命令行中的 Plink 打开一个 SSH 隧道到 运行 一些 R 脚本,但我无法将 R 脚本发送到 运行 并且当他们这样做时 运行 隧道未创建,因此与我的数据库的连接崩溃了。

Plink 代码如下所示:

plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH key]" -N

后跟 运行 R 脚本的代码

"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R

我似乎无法让隧道保持对 运行 R 脚本的开放。但是,我可以单独打开隧道和运行代码。

我假设你在一个批处理文件中有两个命令,一个接一个,比如:

plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH key]" -N
"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R

那么确实 R.exe 永远不会作为 plink.exe 运行 无限期执行。


您必须 运行 并行命令:

  • 您可以在后台使用start命令运行plink.exe
  • R.exe 完成后,使用 killtask 命令终止后台 plink 进程。
  • 您可能还应该在 运行 R.exe 允许 Plink 建立隧道之前暂停一下。
rem Open tunnel in the background
start plink.exe -ssh [username]@[hostname] -L 3307:127.0.0.1:3306 -i "[SSH key]" -N

rem Wait a second to let Plink establish the tunnel 
timeout /t 1

rem Run the task using the tunnel
"C:\Program Files\R\R-3.2.1\bin\x64\R.exe" CMD BATCH qidash.R

rem Kill the tunnel
taskkill /im plink.exe