Linux/Unix Shell Scripting - Mostrar IP de usuarios del sistema

   
Vista:

Mostrar IP de usuarios del sistema

Publicado por Diego (2 intervenciones) el 16/07/2009 18:53:49
Hola, necesito saber desde donde se conecta un usuario del sistema (ip o consola) y lo hago con el siguiente codigo:

echo "Esta actualmente conectado al sistema desde $(who | awk -F":" '{print $2}')"

pero en el resultado, me sesga los minutos de la hora a la que se conectó, por ejemplo:

Esta actualmente conectado al sistema desde 47 (238.red-83-49-54.dynamicip.rima-tde.net)

Ese 47 viene de 18:47, hora a la que se conectó el usuario al sistema. ¿Alguna idea de como solucionarlo?

Y otra cosa, con groups $usuario puedo saber los grupos a los que pertenece un usuario. Pero de que manera puedo hacer que los imprima todos en una linea?

Muchas gracias y un saludo. Diego.
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:Mostrar IP de usuarios del sistema

Publicado por Tom (253 intervenciones) el 17/07/2009 13:03:01
Ummm en mi linux, groups muestra todo en una sola línea ...

Por otra parte ... ¿¿¿ lo que quieres es la IP o la hora ???
Puedes usar, por ejemplo:

who | sed 's/.*((.*))/1/'

(quizás queden mal las barras, a ver qué pasa cuando le de a enviar :-))
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:Mostrar IP de usuarios del sistema

Publicado por Tom (253 intervenciones) el 17/07/2009 13:06:43
Efectivamente, se come los backslash ...

who | sed 's/.*(#(.*#))/#1/'

cambiando '#' por backslash
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:Mostrar IP de usuarios del sistema

Publicado por Diego (2 intervenciones) el 19/07/2009 20:01:25
Hola, disculpa mi ignorancia pero no entiendo muy bien tu codigo.

El comando who, muestra lo siguiente:

sop72 pts/2 2009-07-19 19:55 (147.red-83-44-210.dynamicip.rima-tde.net)

y yo solo quiero que muestre:

(147.red-83-44-210.dynamicip.rima-tde.net)

El problema es que al decirle que solo me muestre $2 coje los minutos de la hora, es decir, me muestra:

55 (147.red-83-44-210.dynamicip.rima-tde.net)

Gracias y un saludo.
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:Mostrar IP de usuarios del sistema

Publicado por Tom (253 intervenciones) el 20/07/2009 10:13:28
Tu código coge como separador de campos el ':', así que $2 es la primera palabra después de ':'.

Para entender mi código échale un vistazo a la documentación de Expresiones Regulares (RE) (mírate, por ejemplo el man de regex(7)). Lo único que hace es tomar la salida de who y aplicarle una RE para sacar lo que haya entre paréntesis.
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:Mostrar IP de usuarios del sistema

Publicado por Diego (1 intervención) el 21/07/2009 18:36:44
Perfecto, ya lo entendí.

Un saludo y muchisimas gracias.
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