El mié., 14 de nov. de 2018 05:17, miguel angel gonzalez < mangelgonza...@gmail.com> escribió:
> 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. > Humm chequeando el sock no seria mejor? Y para reforzar con un curl para verificar que el puerto web responda... Fijate si asi te va mejor que utilizando el script de start/stop >