Unix - problema con shell

 
Vista:

problema con shell

Publicado por Mery  (1 intervención) el 23/01/2009 18:27:03
Hola tengo un problema con una shell
El nombre de la shell es startup_qa.sh y lo que hace basicamente es probar si esta ejecutandose la varible veproceso devuelve el numero de veces que se esta ejecutando.

El problema no esta en la shell pq esta funciona correctamente en otro servido pero cuando quiero ponerlo en otro no funciona correctamente....lo ejecuto y siempre se va al if como si se estuviera ejecutando.
No se si será el problema con la shell pq en un servido r tiene sh y en tro ksh.

veproceso="`ps -fea|grep $USER|grep startup_qa.sh |grep -v grep|wc -l`"
export ORACLE_SID=qa
export ORACLE_HOME=/u01/app/oracle/product/9.2.0
export LOGFILE=$HOME/scripts/log/$(/usr/bin/date +"startup_qa_%d%m%H%M.log")
fecha=`date +%Y%m%d`
hora=`date +%H:%M:%S`
echo "Inicio de Ejecucion de startup_mhtqa.sh ...($fecha$hora)" >> $LOGFILE
if [ $veproceso -ne 0 ]
then
echo "Proceso de startup ya iniciado...($fecha$hora)" >> $LOGFILE
else
echo "Iniciando Base de Datos QA...($fecha$hora)" >> $LOGFILE
$ORACLE_HOME/bin/sqlplus /nolog @$HOME/scripts/startup_mhtqa.sql >> $LOGFILE
fi
fecha=`date +%Y%m%d`
hora=`date +%H:%M:%S`
echo "Fin de Ejecucion de startup_qa.sh ...($fecha$hora)" >> $LOGFILE

Si tiene alguna idea porfis

Mery
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con shell

Publicado por Tom (178 intervenciones) el 26/01/2009 18:19:02
Esto no funciona en ksh:

$(/usr/bin/date +"startup_qa_%d%m%H%M.log")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con shell

Publicado por Solounix Argentina (5 intervenciones) el 27/01/2009 01:52:23
Hola Mery , lo que tenes que hacer para validar si es true(verdadero) o false(falso) , es crear una variable antes del if. te detallo como se hace.

valido=`echo $?`
esto lo que hace es tomar la salida de error de la variable veproceso , entionces tenes que modificar lo siguiente , poner la variable veproceso y luego la variable valido antes del if y listo , te adjunto como tiene que quedar. , algo para tener en cuenta , si la salida te da 0(cero) es correcto , si te da 1(uno) es error.

veproceso="`ps -fea|grep $USER|grep startup_qa.sh |grep -v grep|wc -l`"
valido=`echo $?`


Saludos y Suerte.

Webmaster - Solounix Argentina
www.solounix.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar