Как выполнить команду на группе узлов параллельно с перенаправлением вывода

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 для автоматизированного развертывания и управления на большом количестве узлов.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *