На Windows сервере у нас есть работающий OpenS SH S SH Туннель к нашей MySQL базе данных:
ssh -l <USER> -i <PUBLIC_KEY_FILE> -L 127.0.0.1:3306:localhost:3306 <SERVER_IP>
Нам нужно написать его:
- установить туннель как фоновый процесс
- сделать что-то в процессе переднего плана, включая, но не ограничиваясь, загрузку данных из базы данных на локальную Windows машину
- и затем закрыть фон 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.