Получить команду вывода с нескольких машин одновременно

У меня несколько машин в одной ЛВС, и я хотел бы получить статус top/nvidia-smi всех машин в одной команде, например, отправив

nvidia-smi-all

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

Мы предпочитаем не устанавливать никакого программного обеспечения для управления ресурсами (Kubernetes, slarm). Я предполагаю, что это не должно быть сложно, если у меня есть список всех машин ip, но я не смог найти что-нибудь в сети, вероятно, не знал, что искать.

Надеюсь, вопрос ясен, спасибо.

0
задан 11 February 2021 в 10:58

1 ответ

Для такого рода операция на основе оболочков UNIX я использовал PSSH (Parallel SSH), он позволяет создавать списки серверов, а затем проблемы команд SSH запросы запрашивают их параллельно, используя несколько потоков.

Для установки на Ubuntu 20.04 и 20.10 просто запустите

sudo apt install pssh

Пакет включает в себя команду PSSH для этой цели ..
Пример Создайте файл Hosts / Cluster (скажите mycluster.hosts)

192.168.0.100:2222
192.168.0.101:22
192.168.0.102:22

, а затем этот файл с помощью команды pssh для выполнения команды «uptime» на каждом хосте.

parallel-ssh -h myCluster.hosts uptime
[1] 16:09:03 [SUCCESS] 192.168.0.100:2222 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00
[2] 16:09:03 [SUCCESS] 192.168.0.101:22 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09
[3] 16:09:03 [SUCCESS] 192.168.0.102:22 08:00:01 up  1:00,  8 users,  load average: 0.00, 0.09, 0.18

Пакет также поставляется с параллельными версиями SCP, rsync и т. Д. Очень мощные инструменты. Предложите, что вы используете вариант / тестирование сухого запуска на одной машине, прежде всего, чтобы не разбить весь кластер.

2
ответ дан 18 March 2021 в 23:35

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

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