[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ayuda bash



Hola a todos,
Tengo una duda, me han pedido que haga un script relativamente sencillo pero que me tiene atascado.
Comprobar que tomcat está arrancado y sino arrancarlo, hasta aquí bien, lo estaba haciendo por procesos.

#!/bin/bash
RESTART="/etc/init.d/tomcat restart"
PGREP="/usr/bin/pgrep"
TOMCAT="java"

# buscamos que exista el proceso
$PGREP ${TOMCAT}

# sino existe id de proceso y el comando anterior devuelve 0

    if [ $? -ne 0 ]
    then
  $RESTART
    fi
---
Pues bien, así no quieren que se realice.
Sino que compruebe estado es decir, si está arrancado que no haga nada sino que lo arranque. Por el mensaje que devuelve. Lo que llevo hecho es esto, el problema me surge que el estado de tomcat que devuelve el comando status no entra en la variable y sin eso el resto no funciona. Como podéis ver hee intentado varias opciones pero ninguna me funciona, entiendo que la correcta y que debería de funcionar es:  ssh root@$i SALIDA=$(/etc/init.d/Tomcat status)

#!/bin/bash
START="/etc/init.d/Tomcat start"
PARADO="Tomcat Server is not running."
#STATUS="Tomcat Server is running"
#SALIDA=/etc/init.d/Tomcat status"
for i in $(cat /home/usuario/xml.lst)
do
#            ssh root@$i /etc/init.d/Tomcat status >> SALIDA=$(/home/usuario/prueba_estado_tomcat.txt)
                ssh root@$i /etc/init.d/Tomcat status
               ssh root@$i SALIDA=$(/etc/init.d/Tomcat status)
                echo "$SALIDA"  >> /home/usuario/prueba_estado_tomcat.txt
#               if [ "$SALIDA" == "$PARADO" ];
#                then echo "está parado" >> /home/usuario/tomcat_parado.txt
                #$START
#                fi
done
Por cierto, el servicio de tomcat es con la T mayúscula. De momento hasta que lo tenga terminado, voy por partes y estoy enviando el resultado a un txt. Recorro una lista con las ip´s de las máquinas. Por eso dentro de un for meto el if.
¿Se os ocurre algo? Gracias.
--
/m.a.

Reply to: