параллельный ssh ​​(pssh) с потоком вывода

У меня есть 3 сервера, и я хочу запустить команду на всех из них параллельно с клиента и увидеть результат в потоковом режиме.

Я пробовал использовать pssh, но он показывает вывод только при выходе из команды. Но мне нужен вывод со всех серверов на стандартный вывод моего клиента, поскольку он производит вывод перед выходом.

Например, когда я запускаю "ping google.com" на всех серверах, я получаю вывод только тогда, когда нажимаю Ctrl+C следующим образом:

Моя команда выглядит так:

       pssh -h server_list -l userName -i pemFile.pem 'ping google.com'

Как увидеть вывод пинга со всех 3 серверов по мере пинга?

1 ответ

Я пытался добиться того же, и лучшим способом для меня было указать выходной каталог, а затем следовать потоку в выходных файлах, например:

Мы добавляем -o /tmp/out -t 0поэтому мы получаем вывод каждого хоста в указанный каталог, и мы не получаем никакого тайм-аута.

pssh -h server_list -l userName -i pemFile.pem -o /tmp/out -t 0 'ping google.com'

Оставьте это включенным, а затем следуйте за потоками. Предполагая, что в вашем server_list есть host1, host2, host3 и host4 , вы можете сделать следующее: tail -f /tmp/out/host{1,2,3,4}

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