同じコマンドを送信する PSSH を使用して bash スクリプトを作成しようとしていますが、ホストによって引数が異なります。ホスト名と引数は、別のファイル「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 変数を切り取っても、私が望むものは得られないことは確かですが、私が本当にこだわっているのは、解析した後、「list.txt」内のすべての項目に対して pssh コマンドが正しく実行されるかどうかです。 $actionList からの正しい文字列。
PSSHでファイルから引数を変更して、同じコマンドを作成する方法はありますか? これを行うためのより良いプログラムはありますか?もしそうなら、どのように?どんな助けでも大歓迎です。
ありがとう!
PS この投稿をフォーマットしたり、間違ったことをしたりした場合は、お詫び申し上げます。通常、StackOverflow は最後の手段なので、あまり使用しません。繰り返しますが、助けやアドバイスをありがとう!