Este script es bastante interesante en cuanto al manejo de arreglos en BASH, para este ejemplo supondremos que tenemos el siguiente archivo de texto en donde el primer campo correspondera al servicio que queremos controlar y los siguientes campos a los servidores involucrado para ese servicio..
1 2 3 |
apache;uno;dos;tres;cuatro mysql;zeus;jupiter;luna php;boldo;arrayan |
A continuación el script que se encarga de leer el archivo y iterar por los servicios. Este SCRIPT presentado comoe ejemplo se puede adaptar para cualquier situación..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/bin/bash arreglo=/usr01/home/process/servicios.txt i=0 for host in $(cat $arreglo) do HOST[${i}]=$host (( i=i+1 )) done hostcount=${#HOST[*]} j=0 l=1 while [ $j -lt $hostcount ] do echo "Linea $l ==>> ${HOST[$j]}" motor=(`echo ${HOST[$j]} | tr ';' ' '`) motcount=${#motor[*]} m=1 while [ $m -lt $motcount ] do echo "Procesando servicio ${motor[0]} del servidor ${motor[$m]}" (( m=m+1 )) done (( j=j+1 )) (( l=l+1 )) done |
Al ejecutar el script, obtendremos el siguiente resultado..
1 2 3 4 5 6 7 8 9 10 11 12 |
Linea 1 ==>> apache;uno;dos;tres;cuatro Procesando servicio apache del servidor uno Procesando servicio apache del servidor dos Procesando servicio apache del servidor tres Procesando servicio apache del servidor cuatro Linea 2 ==>> mysql;zeus;jupiter;luna Procesando servicio mysql del servidor zeus Procesando servicio mysql del servidor jupiter Procesando servicio mysql del servidor luna Linea 3 ==>> php;boldo;arrayan Procesando servicio php del servidor boldo Procesando servicio php del servidor arrayan |