Re: Ayuda con un script y grep
Mira esto a ver que tal: ps -ef | awk '/@pts/{print $1}' |uniq El vie, 14-01-2005 a las 00:21 +0100, Iñaki escribió: Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias. .''`. Luis Pérez Meliá : :' : `. `'` `- Debian GNU/Linux -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Ayuda con un script y grep
Mira esto a ver que tal: ps -ef | awk '/@pts/{print $1}' |uniq El vie, 14-01-2005 a las 00:21 +0100, Iñaki escribió: Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias. .''`. Luis Pérez Meliá : :' : `. `'` `- Debian GNU/Linux
Re: Ayuda con un script y grep
El Viernes, 14 de Enero de 2005 10:26, Luis Pérez Meliá escribió: || Mira esto a ver que tal: || || ps -ef | awk '/@pts/{print $1}' |uniq Gracias, aunque ya tenía la solución, me la dieron ayer. Muchas gracias de todas formas.
Ayuda con un script y grep
Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias.
Ayuda con un script y grep
Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias.
Re: Ayuda con un script y grep
On Fri, 14 Jan 2005, [iso-8859-15] Iñaki wrote: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }'
Re: Ayuda con un script y grep
y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: Bueno, también podrías haber intercalado un grep '@' en lo anterior antes de llamar a awk. Cuando estás usando tuberías (esto es, `|'), puedes usar todas las que quieras.
Re: Ayuda con un script y grep
El vie, 14-01-2005 a las 00:13 +0100, Iñaki escribió: Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: agregale : grep @ y te queda ps -ef |grep sshd |grep @ | awk '{print $1}' saludos root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias. -- Angel Claudio Alvarez Usuario Linux Registrado 143466 GPG Public Key en http://pgp.mit.edu key fingerprint = 3AED D95B 7E2D E954 61C8 F505 1884 473C FC8C 8AC4 signature.asc Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente
Re: Ayuda con un script y grep
El Viernes, 14 de Enero de 2005 00:44, Santiago Vila escribió: || ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }' Muchas gracias, pero no me sirve del todo, te explico: Lanzándolo desde consola funciona perfecto, pero al llevarlo a Karamba resulta que hay que ponerlo así: program=código y queda así: program=ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }' o sea, que hay demasiadas (debería haber sólo al principio y al final supongo). He probado a sustituir las dobles comillas interiores por \ (como en PHP y otros lenguajes), pero no funciona. Tengo un manual de Karamba (http://karamba.sourceforge.net/?a=docs/karamba) pero no contempla este caso. ¿Alguna idea? Muchas gracias por supuesto.
Re: Ayuda con un script y grep
El Viernes, 14 de Enero de 2005 02:47, Daniel Angel escribió: || Creo que tu mismo sabes la solucion: no te valdría: || || ps -ef | grep 'sshd' |grep @| awk '{print $1}' || || Claro que no es perfecto, para hacerlo bien necesitas el uso de || expresiones regulares, para estas cosas perl es perfecto pero con awk || supongo que tambien se puede hacer. || || Chao! Gracias, aunque ya me habían dado esta misma solución, ahora vista parece bastante evidente, pero claro, después de que me la habéis mostrado :P Gracias.
Ayuda con un script y grep
Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias.
Ayuda con un script y grep
Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias.
Re: Ayuda con un script y grep
On Fri, 14 Jan 2005, [iso-8859-15] Iñaki wrote: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }'
Re: Ayuda con un script y grep
y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: Bueno, también podrías haber intercalado un grep '@' en lo anterior antes de llamar a awk. Cuando estás usando tuberías (esto es, `|'), puedes usar todas las que quieras.
Re: Ayuda con un script y grep
El vie, 14-01-2005 a las 00:13 +0100, Iñaki escribió: Hola, he hecho un tema de Karamba que me saca en una pantallita los usuarios logueados en el sistema y por otra parte los usuarios que acceden vía SSH. El problema es que no sé cómo pulir el código del SSH. Hasta ahora he hecho esto: ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: agregale : grep @ y te queda ps -ef |grep sshd |grep @ | awk '{print $1}' saludos root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias. -- Angel Claudio Alvarez Usuario Linux Registrado 143466 GPG Public Key en http://pgp.mit.edu key fingerprint = 3AED D95B 7E2D E954 61C8 F505 1884 473C FC8C 8AC4 signature.asc Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente
Re: Ayuda con un script y grep
El Viernes, 14 de Enero de 2005 00:44, Santiago Vila escribió: || ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }' Muchas gracias, pero no me sirve del todo, te explico: Lanzándolo desde consola funciona perfecto, pero al llevarlo a Karamba resulta que hay que ponerlo así: program=código y queda así: program=ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }' o sea, que hay demasiadas (debería haber sólo al principio y al final supongo). He probado a sustituir las dobles comillas interiores por \ (como en PHP y otros lenguajes), pero no funciona. Tengo un manual de Karamba (http://karamba.sourceforge.net/?a=docs/karamba) pero no contempla este caso. ¿Alguna idea? Muchas gracias por supuesto.
[SOLUCIONADO] Ayuda con un script y grep
Vale, finalmente lo que he hecho es crear un script en un fichero ejecutable (script_ssh.sh) que contiene: ps -ef | awk '$8 ~ /sshd:/ $9 ~ /@/ { gsub(@.*,,$9); print $9 }' (es decir, la línea que me ha escrito Santiago, muchas gracias) Y en el código de karamba he puesto: program=ruta_al_ejecutable/script_ssh.sh Y se acabó. PD: El código que me ha propuesto Angel también vale: ps -ef |grep sshd |grep @ | awk '{print $1}' Lo único que no funciona del todo bien en Karamba (ya había yo notado cosas similares). Resulta que como es una concatenación de procesos (tuberías), durante algún momento se está ejecutando un proceso del usuario0 que consiste en: usuario0 16388 10122 0 01:25 pts/65 00:00:00 grep @ de tal forma que Karamba me saca también el usuario0 como usuario accediendo vía SSH. Repito que esto ya lo había notado alguna vez yo en otros códigos de Karamba, la salida no siempre es igual que ejecutando el mismo código en consola. Ni idea de porqué. No obstante el código de Angel introducido en un fichero script también es una perfecta solución. Gracias a los dos.
Re: Ayuda con un script y grep
ps -ef | grep 'sshd' | awk '{print $1}' Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2), un ps -ef | grep 'sshd' saca lo siguiente: root 1132 1 0 Jan13 ?00:00:00 /usr/sbin/sshd root 1200 1132 0 Jan13 ?00:00:00 sshd: usuario1 [priv] usuario1 1219 1200 0 Jan13 ?00:00:00 sshd: [EMAIL PROTECTED]/59 root 1608 1132 0 00:01 ?00:00:00 sshd: usuario2 [priv] usuario2 1619 1608 0 00:01 ?00:00:00 sshd: [EMAIL PROTECTED]/61 usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd y entonces, ps -ef | grep 'sshd' | awk '{print $1}' me da esto: root root usuario1 root usuario2 usuario0 Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que tienen una @ detrás (son los únicos que han accedido por SSH). El truco parece que estar en coger sólo los que tengan la @, pero no sé cómo. Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más en ellos. ¿Alguna ayuda para corregir el código? Muchas gracias. Buenas! Creo que tu mismo sabes la solucion: no te valdría: ps -ef | grep 'sshd' |grep @| awk '{print $1}' Claro que no es perfecto, para hacerlo bien necesitas el uso de expresiones regulares, para estas cosas perl es perfecto pero con awk supongo que tambien se puede hacer. Chao!
Re: Ayuda con un script y grep
El Viernes, 14 de Enero de 2005 02:47, Daniel Angel escribió: || Creo que tu mismo sabes la solucion: no te valdría: || || ps -ef | grep 'sshd' |grep @| awk '{print $1}' || || Claro que no es perfecto, para hacerlo bien necesitas el uso de || expresiones regulares, para estas cosas perl es perfecto pero con awk || supongo que tambien se puede hacer. || || Chao! Gracias, aunque ya me habían dado esta misma solución, ahora vista parece bastante evidente, pero claro, después de que me la habéis mostrado :P Gracias.