Сценарий, чтобы установить SSH туннелирует и затем запустить другую программу, которая использует туннель

Я запускаю приложение GUI (Gnucash), который соединяется с удаленной базой данных Postgres через безопасную сессию оболочки. Я могу использовать SSH-L команда, чтобы туннелировать локальный порт и затем отдельно выполнить Gnucash, и это хорошо работает.

То, что я хотел бы сделать, использовать единственный сценарий оболочки, который создает туннель и затем называет Gnucash. Это возможно? Если так, как я делаю это? В настоящее время я выполняю команды как следующее в 2 отдельных окнах терминала:

ssh-L 5433:127.0.0.1:19097 username@myserver.com.au gnucash postgres://gnucash@localhost:5433/gnucash_db

Если я просто поместил обе строки в сценарий оболочки, первая строка бросает меня в удаленную оболочку, и вторая строка не выполняется, пока я не выхожу из удаленной оболочки.

TIA, ограбьте выступы

3
задан 30 August 2012 в 01:23

1 ответ

Используйте ssh -fNT -L 5433:127.0.0.1:19097 username@myserver.com.au для выяснения у ssh к автоматически фону после установления туннеля, и затем сценарий может переместиться в следующую команду. Я предлагаю, чтобы Вы закончили сценарий exit, который закроет терминал и уничтожит эти ssh процесс; иначе необходимо или явно уничтожить его, или это выйдет, если/когда сервер приведет к таймауту его.

0
ответ дан 21 October 2019 в 11:56

Другие вопросы по тегам:

Похожие вопросы: