Yaklaşık 20 farklı sunucuda rsync kullanmak ve dosyaları güncellemek için bir bash betiği yazıyorum.
Ben rsync parçası anladım var. Sorun yaşadığım değişkenler listesinden geçiyor.
Benim senaryom şu ana kadar benziyor:
#!/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]İlişkili değişkenin değeri nerede olmalıdır. Bu yüzden i = 1 olduğunda $ SERVER1 değerini yankılamalıyım.
Ben de dahil olmak üzere, bunun birkaç yineleme denedim
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
Senaryo yazmamın üzerinden uzun zaman geçti, bu yüzden bir şey eksik olduğumu biliyorum. Ayrıca, son 11 yıldır kullandığım C # kullanarak yapabileceğim şeyleri karıştırıyorum.
Yapmaya çalıştığım şey mümkün mü? Yoksa bu değerleri bir diziye koyup dizide döngü yapmalı mıyım? Aynı şey üretim IP adresleri yanı sıra konum adları için gerekir.
Bu, uzak sunucudaki dosyaları senkronize etmek için kullanacağım bir kod bloğunu tekrarlamak zorunda kalmamak için bir çaba.