Este SCRIPT realiza consultas sobre un archivo con un formato en particular, los campos estan separados por (;) punto y coma :
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
#!/bin/bash esp="\\n " echo "\\n" opcion=0 fech=`date +%Y%m%d` fecha=`date +%d%m%Y` uranos="/usr01/home/server/logs/servers.txt" trap "continue" 2 3 until test $opcion = 99 do clear date '+%n Fecha : %d/%m/%Y Hora : %H:%M Hrs.' echo " +---------------------------------------------+ | CONSULTA SERVIDORES POR MOTOR | +---------------------------------------------+ 30-03-2015 V.1 servxmot.sh " read -p " Servidores (Separados por espacio) : " servi servicio=(`echo ${servi}`) conser=${#servicio[*]} echo " " read -p " Para Ejecutar digite tal como aparece Mayuscula y minuscula [Si] : " opcion echo "" echo "-----------------------------------------------------------------------------" if [ ! "$opcion" ] then break fi case $opcion in Si) cat $uranos | while read line;do # Aqui se cabia todos los ";" por espacios " " lineas=${line//;/ } servidor=(`echo ${lineas}`) conmot=${#servidor[*]} j=1 m=0 while [ $j -lt $conmot ] do k=0 while [ $k -lt $conser ] do if [ ${servidor[$k]} == 0 ] then (( k=k+1 )) continue fi if [ "${servidor[$j]}" -eq "${servicio[$k]}" ] && [ $m == 0 ] then presenta=${servidor[0]} presenta=$presenta" "urano${servicio[$k]} (( k=k+1 )) (( m=m+1 )) continue fi if [ "${servidor[$j]}" -eq "${servicio[$k]}" ] then presenta=$presenta" "urano${servicio[$k]} (( k=k+1 )) continue fi (( k=k+1 )) done (( j=j+1 )) done if [ -z "$presenta" ] then m=0 else echo $presenta fi m=0 presenta= done echo -e "--------------------------- FIN CONSULTA -------------------------------" read fin echo "";; *) echo "";; esac done |