Я пытаюсь написать bash-скрипт с использованием PSSH, который отправляет одну и ту же команду, но разные аргументы в зависимости от хоста.Имя хоста и аргументы будут извлечены из другого файла «list.txt».
Пример файла «list.txt» будет выглядеть следующим образом:
10.0.0.1;'hello';'world'
10.0.0.2;'goodbye';'everyone'
10.0.0.3;'thank';'you!'
Примерто, что у меня есть в настоящее время (но, к сожалению, не работает), показано ниже:
#!/bin/bash
# grab the list items and make them into a variable to be able to parse
actionList=$(</root/scripts/list.txt)
# parse out host name for pssh
host_name="$( cut -d ';' -sf 1 <<< "$actionList" )";
# parse out the first argument
argument1="$( cut -d ';' -sf 2 <<< "$actionList" )";
# parse out the second argument
argument2="$( cut -d ';' -sf 3 <<< "$actionList" )";
# pssh command that creates a new file on each server with their respective argument1 and argument2
pssh -i -AH $host_name -t 300 -O StrictHostKeyChecking=no "$(argument1) ' and ' $(argument2) >> arg1_and_arg2.txt"
Я почти уверен, что сокращение переменной $ actionList не дает мне то, что я хочу, но то, что я на самом делеЗастрял в том, будет ли эта команда pssh работать правильно для каждого элемента в 'list.txt' после того, как я проанализировал правильные строки из $ actionList.
Есть ли способ сделать ту же команду, изменяя аргументы изфайл работает с PSSH?Есть ли лучшая программа для этого?Если так, то как?Любая помощь приветствуется.
Спасибо!
PS Если я отформатировал или сделал что-то не так с этим постом, я прошу прощения.StackOverflow - это мое последнее средство, поэтому я не часто его использую.Еще раз спасибо за любую помощь / совет!