Как запустить множественное ssh-соединение в одном скрипте bash? - PullRequest
3 голосов
/ 06 апреля 2011

У меня есть 10+ ssh-сервер должен переадресовывать порты, когда я начинаю работать, но я устал запускать эти ssh-соединения по одному.Я знаю, в Linux мощный сценарий Bash может справиться с этой проблемой.Вот мой пример bash-скрипта

#!/bin/bash
ssh -L 10001:somehost:3306 user@host1 -N
ssh -L 10002:somehost:3306 user@host2 -N
ssh -L 10003:somehost:3306 user@host3 -N
....

Я обнаружил, что если первое ssh-соединение началось, оно просто остановилось на этой линии и подождет, пока оно закроется.

Может кто-нибудь сказать мне, какэто исправить?

Ответы [ 3 ]

5 голосов
/ 06 апреля 2011

Используйте параметр -f:

ssh -f -N -L 10001:somehost:3306 user@host1

От man ssh:

-f      Requests ssh to go to background just before command execution.
0 голосов
/ 06 апреля 2011

как насчет использования экранной команды?

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

0 голосов
/ 06 апреля 2011

Использование можно использовать nohup;)

#!/bin/sh
nohup ssh -L 10001:host:3306 user@host1 -N
nohup ssh -L 10002:host:3306 user@host2 -N
nohup ssh -L 10003:host:3306 user@host3 -N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...