xargs -n1 -P100 -I{} sh -c 'ssh {} uptime >output/{} 2>error/{}' <hostlist
Команда xargs используется для выполнения команды на группе узлов параллельно с перенаправлением вывода. С помощью флага -n1 задается количество аргументов, передаваемых в один запуск команды, а флаг -P100 указывает на количество одновременно запущенных процессов (в данном случае – не более 100).
Команда sh -c позволяет выполнить произвольную команду в оболочке. С помощью знака {} осуществляется подстановка элементов из списка узлов, переданных в качестве аргументов. Команда ssh используется для удаленного подключения к узлу.
После выполненной команды управление выводом осуществляется перенаправлением в файл. Флаг >output/{} указывает на запись вывода в файл output/имя_узла, а флаг 2>error/{} осуществляет перенаправление ошибок в файл error/имя_узла.
Альтернативой может быть использование pdsh для выполнения команд на нескольких узлах одновременно, либо ansible для автоматизированного развертывания и управления на большом количестве узлов.
