Ich schreibe ein Bash-Skript, um rsync zu verwenden und Dateien auf etwa 20 verschiedenen Servern zu aktualisieren.
Ich habe den Rsync-Teil herausgefunden. Ich habe Probleme damit, eine Liste von Variablen durchzugehen.
Mein Skript sieht bisher so aus:
#!/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
Wo [Server IP Address]
soll der Wert der zugehörigen Variablen sein. Wenn also i = 1 ist, sollte ich den Wert von $ SERVER1 ausgeben.
Ich habe mehrere Iterationen davon ausprobiert, einschließlich
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
Es ist lange her, dass ich Skripte geschrieben habe, also weiß ich, dass mir etwas fehlt. Außerdem bin ich mir sicher, dass ich mit C # mische, was ich in den letzten 11 Jahren verwendet habe.
Ist das, was ich versuche, überhaupt möglich? Oder sollte ich diese Werte in ein Array einfügen und das Array in einer Schleife durchlaufen? Ich brauche das gleiche für Produktions-IP-Adressen sowie Standortnamen.
Dies ist alles in dem Bemühen, nicht einen Codeblock wiederholen zu müssen, den ich zum Synchronisieren der Dateien auf dem Remote-Server verwenden werde.