Sto scrivendo uno script bash per utilizzare rsync e aggiornare i file su circa 20 server diversi.
Ho capito la parte rsync. Ciò di cui ho problemi è passare attraverso un elenco di variabili.
La mia sceneggiatura finora assomiglia a questa:
#!/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
Dove [Server IP Address]
dovrebbe essere il valore della variabile associata. Quindi quando i = 1 dovrei fare eco al valore di $ SERVER1.
Ho provato diverse iterazioni di questo tra cui
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
È da tanto tempo che scrivo, quindi so che mi manca qualcosa. Inoltre sono sicuro che sto mescolando ciò che potrei fare usando C #, che ho usato negli ultimi 11 anni.
Ciò che sto cercando di fare è anche possibile? O dovrei mettere questi valori in un array e passare in rassegna l'array? Ho bisogno della stessa cosa per gli indirizzi IP di produzione e per i nomi delle località.
Tutto questo nel tentativo di non dover ripetere un blocco di codice che userò per sincronizzare i file sul server remoto.