J'écris un script bash pour utiliser rsync et mettre à jour des fichiers sur environ 20 serveurs différents.
J'ai compris la partie rsync. Ce qui me pose problème, c'est de parcourir une liste de variables.
Jusqu'à présent, mon script ressemble à ceci:
#!/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
Où [Server IP Address]
devrait être la valeur de la variable associée. Donc, quand i = 1, je devrais faire écho à la valeur de $ SERVER1.
J'ai essayé plusieurs itérations de cela, y compris
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
Cela fait longtemps que je n'ai pas scénarisé, donc je sais que je manque quelque chose. De plus, je suis sûr que je mixe ce que je pourrais faire en utilisant C #, que j'utilise depuis 11 ans.
Ce que j'essaie de faire est-il même possible? Ou devrais-je mettre ces valeurs dans un tableau et boucler à travers le tableau? J'ai besoin de cette même chose pour les adresses IP de production ainsi que les noms d'emplacement.
Tout cela dans un effort pour ne pas avoir à répéter un bloc de code que j'utiliserai pour synchroniser les fichiers sur le serveur distant.