Linux/Unix Shell Scripting - Duda con Script Bash

   
Vista:

Duda con Script Bash

Publicado por juana (7 intervenciones) el 24/04/2013 09:46:46
Buenos días!!!

Me han pedido un script para el trabajo y la verdad que no sé como puedo hacerlo.
Soy bastante novata en programación y todavía mas en shell script.

El script en cuestión lo que tiene que hacer es buscar una línea en una serie de ficheros de log.
En el caso de que encuentre una o más líneas, con ese texto, debe ejecutar una instrucción.

Yo había pensado en hacer algo así pero no se si funcionará.

1
2
3
4
5
6
7
#!bin/bash
if ps -A | grep "línea_que_busco" fichero_log[0-3] = true
then
run "proceso"
else
echo "no se ha encontrado la "línea_que_busco""
fi


La primera línea del true creo que me la he sacado un poco de la manga, pero es para que se entienda lo que quiero hacer.

Saludos!!
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
Imágen de perfil de xve

Duda con Script Bash

Publicado por xve (253 intervenciones) el 24/04/2013 15:44:47
Hola Juana, yo lo haría así:

1
2
3
4
5
6
7
#!bin/bash
exists=`grep texto /var/log/ficherlo_log[0-3]`
if [ -n "$exists" ];then
    # encontrado
else
    # no se ha encontrado
fi

Coméntanos, si te sirve, ok?
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

Duda con Script Bash

Publicado por Juana (7 intervenciones) el 24/04/2013 17:16:58
Muchas gracias por la ayuda.
finalmente lo he hecho así:

1
2
3
4
#!bin/bash
grep -q "cadena_texto" /usr/bin/log/fichero_log[0-3]*
if [ $? -eq 0 ]; then
	# encontrado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

Duda con Script Bash

Publicado por xve (253 intervenciones) el 24/04/2013 22:51:51
muy bueno Juana, mucho mejor...

gracias por comentarlo!!!
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

Duda con Script Bash

Publicado por Juana (7 intervenciones) el 26/04/2013 09:50:09
Me he quedado encallada en otra parte del mismo script, a ver si me podéis ayudar
Hay un proceso que traza un fichero.log. Resulta que tengo que mirar si el proceso ha dejado de trazar en fichero.log o no, para ello he pensado en comparar la fecha actual con las fechas que aparecen en el log.

He escrito lo siguiente, pero al ejecutar el script, me salta error

1
2
3
4
5
$fecha=date +%y/%m/%d  #Creo variable con fecha actual y formato del log.
                grep -q "$fecha" /usr/bin/log/fichero.log   #Busco fecha dentro del log
                if [ $? -neq 0 ];
                then
                        echo "No está trazando fichero.log" >> err.log


No se si se puede crear una variable que contenga la fecha con el formato "13/04/26" por ejemplo. Tampoco se si se puede hacer un grep en el que busque una cadena de texto que está contenida dentro de una variable. ¿Existe alguna alternativa para hacer lo que estoy intentando?

Un saludo y graciass
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

Duda con Script Bash

Publicado por Tom (253 intervenciones) el 26/04/2013 21:22:15
Creo que necesitas leerte un tutorial básico de bash.

Yo probaría algo así:
1
2
fecha=$(date +%y/%m/%d)
grep "$fecha" /usr/bin/log/fichero.log || ( echo "No esta Trazando ...")
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