Как использовать pssh для запуска нескольких серверов с разными командами?

853
Andi

Мне нужно протестировать распределенную систему с несколькими удаленными серверами, поэтому я использую pssh на главном сервере для управления другими. Здесь нужно запустить несколько серверов с разными командами, например

На сервере 201 нужно запустить

java -jar test.jar 9001 **.**.**.** 9001 java -jar test.jar 9001 **.**.**.** 9002 

На сервере 202 нужно запустить

java -jar test.jar 9001 **.**.**.** 9003 java -jar test.jar 9001 **.**.**.** 9004 

На сервере 203 нужно запустить

java -jar test.jar 9001 **.**.**.** 9005 java -jar test.jar 9001 **.**.**.** 9006 

...

Вся информация о сервере уже сохраняется в hosts.txt в формате username @ server . Так как же использовать pssh на главном сервере для запуска команд?

0

1 ответ на вопрос

1
ojs

pssh используется для запуска одной и той же команды на разных серверах, ваш пример показывает, что вы хотите запускать разные команды на разных серверах (начало команд одинаково, но последний номер отличается).

Что вы можете сделать, это поместить эти команды в файл сценария на каждом из его соответствующих серверов, убедившись, что файл сценария вызывается одинаково на каждом сервере, а затем использовать pssh -i -h hosts.txt script.sh.

Как пример, на сервере 201 положить в script.sh

#!/bin/sh java -jar test.jar 9001 **.**.**.** 9001 java -jar test.jar 9001 **.**.**.** 9002 

и на сервере 202 положить в script.sh

#!/bin/sh java -jar test.jar 9001 **.**.**.** 9003 java -jar test.jar 9001 **.**.**.** 9004 

и т.п.

Затем поместите script.shв переменную $ PATH пользователя, который будет запускать команду или указать полный путь к сценарию, и не забудьте сделать сценарий исполняемым на серверах.

Да, это работает хорошо, большое спасибо за вашу помощь. Andi 7 лет назад 0
Кроме того, у меня есть еще один вопрос, если я хочу завершить весь процесс на другом сервере, я использую pnuke, но при повторном запуске pssh он говорит, что порт (9001-900x) все еще будет использоваться, так как завершить отдельный в другом сервер удобный? Andi 7 лет назад 0
@Анди, пожалуйста, напишите об этом как отдельный вопрос. ojs 7 лет назад 0

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