約20の異なるサーバーでrsyncを使用してファイルを更新するbashスクリプトを書いています。
rsyncの部分を把握しました。私が問題を抱えているのは、変数のリストを調べることです。
これまでの私のスクリプトは次のようになります。
#!/bin/bash
SERVER1="192.xxx.xxx.2"
SERVER2="192.xxx.xxx.3"
SERVER3="192.xxx.xxx.4"
SERVER4="192.xxx.xxx.5"
SERVER5="192.xxx.xxx.6"
SERVER6="192.xxx.xxx.7"
for ((i=1; i<7; i++))
do
echo [Server IP Address]
done
どこ [Server IP Address]
関連する変数の値はべきか。したがって、i = 1の場合、$ SERVER1の値をエコーする必要があります。
これを含むいくつかの反復を試しました
echo "$SERVER$i" # printed the value of i
echo "SERVER$i" # printer "SERVER" plus the value of i ex: SERVER 1 where i = 1
echo $("SERVER$i") # produced an error SERVER1: command not found where i = 1
echo $$SERVER$i # printed a four digit number followed by "SERVER" plus the value of i
echo \$$SERVER$i # printed "$" plus the value of i
スクリプトを作成してから長い時間が経ちましたので、何か不足していることがわかります。さらに、過去11年間使用してきたC#を使用してできることをミックスしていると確信しています。
私がやろうとしていることも可能ですか?または、これらの値を配列に入れて配列をループする必要がありますか?実稼働IPアドレスとロケーション名についても同じことが必要です。
これはすべて、リモートサーバー上のファイルを同期するために使用するコードブロックを繰り返す必要がないようにするための努力です。