Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

gpssh

Предоставляет SSH-доступ к нескольким хостам одновременно.

Синтаксис

gpssh { -f <hostfile_gpssh> | -h <hostname> [ -h <hostname> ... ] }
      [ -u <userid> ]
      [ -s ] [ -e ]
      [ -d <seconds> ]
      [ -t <multiplier> ]
      [ -v ]
      [ <bash_command> ]

gpssh -?

gpssh --version

Описание

Утилита gpssh позволяет выполнять команды оболочки Bash на нескольких хостах одновременно через SSH (secure shell). Можно выполнить одну команду, указав ее в командной строке, или войти в интерактивный режим, не указывая команду.

Для указания хостов используйте параметр -f с файлом со списком хостов или параметр -h с именами отдельных хостов. Необходим хотя бы один хост (-h) или хост-файл (-f). Текущий хост не включается в сессию автоматически — для его включения явно укажите его в списке.

Перед использованием gpssh настройте доверенные соединения между хостами, участвующими в SSH-сессии. Для обновления файлов известных хостов и обмена открытыми ключами воспользуйтесь утилитой gpssh-exkeys.

Без указания команды gpssh работает в интерактивном режиме. В приглашении командной строки gpssh (=>) вводите команды как в обычном терминале Bash — они будут выполнены на всех хостах сессии. Для завершения интерактивной сессии нажмите Ctrl+D или введите exit или quit.

Если в файле хостов не указано имя пользователя, команды выполняются от имени текущего пользователя. Для определения текущего пользователя выполните команду whoami. По умолчанию после входа gpssh переходит в каталог $HOME пользователя на удаленных хостах. Для корректного выполнения команд на всех хостах всегда указывайте абсолютные пути.

При возникновении проблем с сетевыми тайм-аутами используйте параметры -d и -t или настройте соответствующие интервалы в файле gpssh.conf для управления проверкой SSH-подключений. Подробности о конфигурационном файле см. в разделе Конфигурационный файл gpssh.

Параметры

<bash_command>

Команда оболочки Bash для выполнения на всех хостах сессии (можно заключать в кавычки). Если команда не указана, gpssh запускает интерактивную сессию.

-d <seconds>

Время ожидания в секундах перед началом взаимодействия gpssh с ssh. По умолчанию — 0.05 секунды. Переопределяет параметр delaybeforesend в конфигурационном файле gpssh.conf.

Увеличение этого значения замедляет запуск gpssh.

-e

Выводит команды, отправленные каждому хосту, и их результаты при работе в неинтерактивном режиме.

-f <hostfile_gpssh>

Имя файла со списком хостов для SSH-сессии. Файл должен содержать по одному хосту на строку.

-h <hostname>

Имя хоста для SSH-сессии. Параметр можно указывать несколько раз для задания нескольких хостов.

-s

Перед выполнением команд на целевом хосте загружает файл greengage_path.sh из каталога, указанного в переменной окружения GPHOME.

Параметр работает как в интерактивном режиме, так и при выполнении одной команды.

-t <multiplier>

Десятичное число больше 0, являющееся множителем тайм-аута при проверке приглашения ssh. По умолчанию — 1. Переопределяет параметр prompt_validation_timeout в конфигурационном файле gpssh.conf.

Увеличение значения слегка замедляет запуск gpssh.

-u <userid>

Указывает идентификатор пользователя для данной SSH-сессии.

-v

Выводит дополнительные сообщения вместе с результатами команд в неинтерактивном режиме.

--version

Отображает версию утилиты.

-?

Выводит справку.

Конфигурационный файл gpssh

Файл gpssh.conf содержит параметры для настройки временных интервалов при проверке начального ssh-подключения. Эти параметры влияют на сетевое соединение до выполнения команд через ssh. Расположение файла задается переменной окружения MASTER_DATA_DIRECTORY. Если переменная не определена или файл отсутствует, используются значения по умолчанию или значения, заданные параметрами -d и -t.

Файл gpssh.conf является текстовым и содержит секцию [gpssh] с параметрами. Символ # используется для комментариев. Пример файла gpssh.conf:

[gpssh]
delaybeforesend = 0.05
prompt_validation_timeout = 1.0
sync_retries = 5

Параметры gpssh.conf:

delaybeforesend = <seconds>

Время ожидания в секундах перед началом взаимодействия gpssh с ssh. По умолчанию — 0.05. Увеличение значения замедляет запуск gpssh. Параметр -d переопределяет это значение.

prompt_validation_timeout = <multiplier>

Десятичное число больше 0, множитель тайм-аута при проверке приглашения ssh. По умолчанию — 1. Увеличение значения слегка замедляет запуск gpssh. Параметр -t переопределяет это значение.

sync_retries = <attempts>

Неотрицательное целое число, задающее максимальное количество попыток подключения к удаленному хосту Greengage DB. По умолчанию — 3. Если указано 0, gpssh возвращает ошибку при первой неудачной попытке. Увеличение количества попыток также увеличивает интервал между ними. Этот параметр настраивается только через конфигурационный файл.

Параметр -t также влияет на интервал между повторами.

Увеличение значения помогает компенсировать низкую производительность сети или сегмент-хостов (например, при высокой нагрузке на CPU или ввод-вывод). Однако при невозможности установить соединение увеличенное значение также увеличивает задержку перед возвратом ошибки.

Примеры

Запуск интерактивной групповой SSH-сессии со всеми хостами из файла hostfile_gpssh:

$ gpssh -f hostfile_gpssh

Выполнение команды на всех хостах в интерактивном режиме gpssh:

=> ls -a /data1/primary/*

Выход из интерактивной сессии:

=> exit
=> quit

Запуск неинтерактивной групповой SSH-сессии с хостами sdw1 и sdw2 и передача файла команд command_file в gpssh:

$ gpssh -h sdw1 -h sdw2 -v -e < command_file

Выполнение отдельных команд в неинтерактивном режиме на хостах sdw2 и localhost:

$ gpssh -h sdw2 -h localhost -v -e 'ls -a /data1/primary/*'
$ gpssh -h sdw2 -h localhost -v -e 'echo $GPHOME'
$ gpssh -h sdw2 -h localhost -v -e 'ls -1 | wc -l'

См. также