S SH Туннель от Windows как фоновый процесс? - PullRequest
0 голосов
/ 13 марта 2020

На Windows сервере у нас есть работающий OpenS SH S SH Туннель к нашей MySQL базе данных:

ssh -l <USER> -i <PUBLIC_KEY_FILE> -L 127.0.0.1:3306:localhost:3306 <SERVER_IP>

Нам нужно написать его:

  1. установить туннель как фоновый процесс
  2. сделать что-то в процессе переднего плана, включая, но не ограничиваясь, загрузку данных из базы данных на локальную Windows машину
  3. и затем закрыть фон sh Туннель / процесс после того, как был сделан передний план. Как бы мы это сделали?

С помощью cmd / .bat мы достигаем первых двух пунктов, запуская s sh в отдельном cmd с запуском. : https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/start

START ssh -l <USER> -i <PUBLIC_KEY_FILE> -L 127.0.0.1:3306:localhost:3306 <SERVER_IP> -T

Тогда мы можем выполнить свою работу, но тогда мы не выяснили, как закрыть этот бетонный туннель, не убивая всех работающих s sh .exe процессы. Мы не хотим убивать их всех. Есть какой-то способ?

Тогда мы думали о Powershell:

Start-Job -Name "RUN_SSH_TUNNEL_X1" -ScriptBlock {ssh...
...stuff...
Stop-Job -Name "RUN_SSH_TUNNEL_X1"

Но, похоже, это не работает, задание "RUN_SSH_TUNNEL_X1", кажется, останавливается сразу после запуска, поэтому туннель не остается вверх. Есть ли какой-нибудь способ сохранить работу и запустить ее, чтобы закрыть ее после того, как наша часть материала закончена?

Или это нужно сделать каким-нибудь другим методом? NB! Не хотите использовать сторонние инструменты, такие как Putty et c.

...