Foros del Web » Administración de Sistemas » Unix / Linux »

Auditar este script

Estas en el tema de Auditar este script en el foro de Unix / Linux en Foros del Web. ps=ps aux |grep majordomo if [ $ps -lt 1 ]; then ...comandos exit fi Esta bien?, lo digo pues si en consola ejecuto ps aux ...
  #1 (permalink)  
Antiguo 01/09/2003, 16:14
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Auditar este script

ps=ps aux |grep majordomo

if [ $ps -lt 1 ]; then

...comandos

exit
fi



Esta bien?, lo digo pues si en consola ejecuto

ps aux |grep majordomo me puede salir:

root 20028 0.0 0.2 4136 684 pts/3 S 17:49 0:00 grep majordomo

y quizas esto haga que la variable ps que declare sea mayor de 0 y la validación sea positiva cuando no es eso lo que quiero.....

o tendria que valir tipo:

if [ $ps -lt 2 ]; then

......
  #2 (permalink)  
Antiguo 01/09/2003, 18:44
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Obviamente tube un día agotador, ahora que veo el post acá en casa más relajado digo, No podes herohat!, je pues la variable ps me esta agarrando toda la linea y así no podria validar...


Tendria que ser algo tipo ... tipo...

if [ ! $ps ]; then

exit

else

comandos.....

fi
exit

pero así siempre el comando ps me devuelve la linea

root 20028 0.0 0.2 4136 684 pts/3 S 17:49 0:00 grep majordomo

por lo que la expressión siempre sera verdadera!...

Última edición por hrxnet; 01/09/2003 a las 19:00
  #3 (permalink)  
Antiguo 03/09/2003, 08:20
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 11 meses
Puntos: 0
No tengo tiempo para "intentar adivinar" lo que quieres hacer. Si lo explicas primero se te ayudará antes


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #4 (permalink)  
Antiguo 03/09/2003, 09:27
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Es simple, estoy tratando de ver si un proceso esta arriba y que si es así que ejecute una series de comandos, de lo contrario que salga y listo.... en este caso el proceso es "majordomo", para ver si el proceso esta arriba estoy ejecutando ps y tomandolo en una variable así:

ps=ps aux |grep majordomo
  #5 (permalink)  
Antiguo 03/09/2003, 13:15
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 11 meses
Puntos: 0
Quizás algo como:

Código:
#!/bin/bash

ps -aux > temp
PS=`cat temp | grep --count majordomo`
rm -f temp

if [ $PS -ge 1 ]; then
   echo "El proceso está corriendo"
   # Comandos
fi
Utilizo un fichero temporal porque de otro modo a veces el propio "grep" contaría como proceso conteniendo "majordomo" y eso no es lo que buscamos.


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #6 (permalink)  
Antiguo 03/09/2003, 15:37
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
Siempre que ejecuto:

cat temp | grep --count majordomo


devuelve 0 :(
  #7 (permalink)  
Antiguo 04/09/2003, 06:54
Avatar de lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 22 años, 11 meses
Puntos: 0
No tienes que coger el valor que devuelve el proceso, sino el valor que se imprime por pantalla. Este valor que se imprimiría normalmente por pantalla se queda en la variable PS al entrecomillar el comando con comillas oblicuas.


Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico
  #8 (permalink)  
Antiguo 04/09/2003, 08:32
Avatar de hrxnet  
Fecha de Ingreso: julio-2002
Ubicación: Sto. Dgo. RD
Mensajes: 516
Antigüedad: 22 años, 4 meses
Puntos: 0
si a eso me refiero, todo lo que queda en la variable PS

PS=`cat temp | grep --count majordomo`

es un 0 siempre, este o no este majordomo ejecutandose...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:58.