На самом деле я хочу выполнить приведенный ниже сценарий bash одновременно на нескольких хостах, я попробовал команду pssh для этого:
pssh -h hosts.txt -i -I < myscript arg1 arg2 arg3
, но она не выполняется, поэтому, пожалуйста, скажите мне, как правильно выполнить это ...
GNU Parallel имеет специальный режим для этого: - onall
:
parallel --slf hosts.txt --onall myscript.sh ::: arg1 arg2 arg3
Это будет работать на всех машинах:
myscript.sh arg1
myscript.sh arg2
myscript.sh arg3
Если вы не хотите, чтобы аргументы изменить, вы можете использовать - nonall
:
parallel --slf hosts.txt --nonall myscript.sh arg1 arg2 arg3
, который будет запускаться:
myscript.sh arg1 arg2 arg3
на всех машинах. Используйте -j, чтобы указать, на скольких машинах вы хотите входить параллельно.
Вы можете сделать это с помощью GNU Parallel
cat hosts.txt | parallel ssh {} "'bash -s' <./myscript.sh arg1 arg2 arg3"