script para sacar info de usuarios

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
ferbyte
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar May 26, 2009 7:00 am

script para sacar info de usuarios

Mensaje por ferbyte » Mar May 26, 2009 12:40 pm

Hola, necesito un script con bash que reciba como parámetro una 'u' o una 'a'. En el primer caso da la información del usuario actual y en el segundo la de todos los usuarios. La información a sacar es el espacio ocupado de disco, proceso más antiguo, etc.... podríais ayudarme. Graciasss
Avatar de Usuario
Pratt
Forista Medio
Forista Medio
Mensajes: 353
Registrado: Jue May 05, 2005 7:00 am
Ubicación: Bogotá
Contactar:

Mensaje por Pratt » Mié May 27, 2009 10:03 pm

Espacio ocupado en el disco? Me imagino que sera el tamanho de $HOME ?

du -sh $HOME ?

Y para el proceso mas antiguo, me imagino que usando "ps" te puedes echar una mano :)
Mi Foro: http://www.hablarmierda.net
Mi Blog: http://www.michael-pratt.com/blog
Mis Distros: [url=http://www.slackware.com/changelog/current.php?cpu=i386]Slackware (Current)[/url]| [url=http://www.archlinux.org/]Archlinux[/url]
Avatar de Usuario
dracel
Forista Mayor
Forista Mayor
Mensajes: 634
Registrado: Sab Jun 07, 2008 7:00 am
Ubicación: España/Galicia/Pontevedra/Baiona/Sabaris

Mensaje por dracel » Vie May 29, 2009 1:02 pm

ferbyte, si te pusieras un poco creo que lo tendrias hecho antes de que alguien te de una respuesta
[url=http://www.sindominio.net/ayuda/preguntas-inteligentes]como hacer preguntas inteligentes[/url]
Sean tan amables de poner la etiqueta de (SOLUCIONADO) cuando consigan solucionar su problema
Avatar de Usuario
ferbyte
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar May 26, 2009 7:00 am

Re: script para sacar info de usuarios

Mensaje por ferbyte » Lun Jun 15, 2009 10:09 am

Perdón por mi pregunta... creo que entré en el foro equivocado. Sólo lo quiero porque entró en unas opos el año pasado y el próximo me vuelvo a examinar. Saludos
Avatar de Usuario
dracel
Forista Mayor
Forista Mayor
Mensajes: 634
Registrado: Sab Jun 07, 2008 7:00 am
Ubicación: España/Galicia/Pontevedra/Baiona/Sabaris

Re: script para sacar info de usuarios

Mensaje por dracel » Lun Jun 15, 2009 2:51 pm

ferbyte escribió:Perdón por mi pregunta... creo que entré en el foro equivocado. Sólo lo quiero porque entró en unas opos el año pasado y el próximo me vuelvo a examinar. Saludos
Te equivocas, el foro es el adecuado, lo que no es adecuado es la forma de pedir las cosas.
Solo hay que demostrar que se ha intentado y entonces te podemos orientar para que lo puedas conseguir.

Este metodo es mas beneficioso para ti que darte la solucion de buenas a primeras.
[url=http://www.sindominio.net/ayuda/preguntas-inteligentes]como hacer preguntas inteligentes[/url]
Sean tan amables de poner la etiqueta de (SOLUCIONADO) cuando consigan solucionar su problema
Avatar de Usuario
ferbyte
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar May 26, 2009 7:00 am

Re: script para sacar info de usuarios

Mensaje por ferbyte » Mar Jun 16, 2009 9:15 am

De acuerdo, créeme que lo he intentado. En el examen (profesores técnicos de Formación Profesional, especialidad informática en Andalucía, oposición del 2008) durante dos angustiosas horas y en casa he logrado sacar la información que me piden del usuario actual. Pero cuando quiero que lo haga con todos los usuarios conectados no se como averiguar su contraseña. Porque supongo que hay que cambiar de usuario con el comando 'su' y ese comando pide contraseña de usuario... El nombre de los usuarios conectados lo consigo. En fin, no creo que pongan el mismo ejercicio el año que viene pero me gustaría resolverlo. Gracias de todas formas.
Avatar de Usuario
dracel
Forista Mayor
Forista Mayor
Mensajes: 634
Registrado: Sab Jun 07, 2008 7:00 am
Ubicación: España/Galicia/Pontevedra/Baiona/Sabaris

Mensaje por dracel » Mar Jun 16, 2009 9:27 am

¿Por que no nos muestras como lo has hecho y que pide exactamente y te intentamos ayudar?
[url=http://www.sindominio.net/ayuda/preguntas-inteligentes]como hacer preguntas inteligentes[/url]
Sean tan amables de poner la etiqueta de (SOLUCIONADO) cuando consigan solucionar su problema
Avatar de Usuario
ferbyte
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar May 26, 2009 7:00 am

Esto es lo que he conseguido

Mensaje por ferbyte » Vie Sep 04, 2009 8:20 pm

Bien, esto es lo que tengo y mi principal problema es sacar la información
de todos los usuarios conectados. ¿Se puede sacar esa información sin c
cambiar de usuario? Si cambio de usuario ( ejecutandolo el script como root) se sale del script y no continua.... En definitiva la opción -a y -u deben llamar a la función pero pasandole como parámetro el usuario o usuarios y obtener su información

#!/bin/bash

# Práctico Sistemas y aplicaciones Informáticas. Jaén 2008

function infousuario
{
echo /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */

echo -..........................Nombre: $1
echo -.............proceso más antiguo: ; ps | head -2
echo -...........numero de directorios: ; cd /home/$1 | ls -RF | grep / | wc -l
echo -.............numero de ficheros:
echo -.....................disco usado: ; ls /home/$1
echo -espacio ocupado por los ficheros: du /home/$1 | tail -1 | cut -f1


echo /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
}


clear;

if [ $# -gt 2 ]
then echo demasiados parámetros
fi


if [ $# -eq 0 ]
then usu=`whoami`
infousuario $usu # si no hay argumentos, saca la info del usuario actual
fi

case $1 in
-a) echo Todos los usuarios
users > usuariosconect # creo fichero con nombre usuarios
declare -a usuarios # declaro array para guardar los nombres
read -a usuarios <usuariosconect # almaceno nombres en el array usuarios
infousuario ${usuarios[0]};; # llamo función sacar info de cada usuario
# por ahora sólo la llamo con el primer usuario,
# luego será un bucle

-u:) echo info para el usuario $2
infousuario $2;;
*) echo Error de sintaxis,el programa admite los parámetros -a y -u: nombreusuario;;
esac

Graciass.... y perdón por el retraso, tras estos meses eso es lo que he conseguido...


:)
Avatar de Usuario
dracel
Forista Mayor
Forista Mayor
Mensajes: 634
Registrado: Sab Jun 07, 2008 7:00 am
Ubicación: España/Galicia/Pontevedra/Baiona/Sabaris

Re: script para sacar info de usuarios

Mensaje por dracel » Vie Sep 04, 2009 9:38 pm

Buenas de nuevo ferbyte
Voy a ir a lo que sé:

Código: Seleccionar todo

 echo /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 
Ya con tu intento de adorno empezamos mal ya que los asteriscos se expanden en bash y encima no pones uno sino muchos. Con lo que al ejecutarlo uno se queda confuso diciendo que ocurre.
Para que funcione sin expandirse debes ponerlo entre comillas simples. Deberia ser:

Código: Seleccionar todo

 echo '/* * * * * * * * * * * * * * * * * * * * * * * * * * * * */'
Otra cosa es que te falta un las condicionales con el case las agruparia, asi te evitarias un error al no dar parametro lo pondria de esta forma:

Código: Seleccionar todo

if [ $# -gt 2 ]
then echo demasiados parámetros

elif [ $# -eq 0 ]
then usu=`whoami`
    infousuario $usu # si no hay argumentos, saca la info del usuario actual
else
    case $1 in
	-a) echo Todos los usuarios
	    users > usuariosconect # creo fichero con nombre usuarios
	    declare -a usuarios # declaro array para guardar los nombres
	    read -a usuarios <usuariosconect # almaceno nombres en el array usuarios
	    infousuario ${usuarios[0]};; # llamo función sacar info de cada usuario
# por ahora sólo la llamo con el primer usuario,
# luego será un bucle
	
	-u) echo info para el usuario $2
	    infousuario $2;;
	*) echo Error de sintaxis,el programa admite los parámetros -a y -u: nombreusuario;;
    esac 
fi
Segun siga viendo voy escribiendo
[url=http://www.sindominio.net/ayuda/preguntas-inteligentes]como hacer preguntas inteligentes[/url]
Sean tan amables de poner la etiqueta de (SOLUCIONADO) cuando consigan solucionar su problema
Avatar de Usuario
dracel
Forista Mayor
Forista Mayor
Mensajes: 634
Registrado: Sab Jun 07, 2008 7:00 am
Ubicación: España/Galicia/Pontevedra/Baiona/Sabaris

Re: script para sacar info de usuarios

Mensaje por dracel » Vie Sep 04, 2009 10:26 pm

Ya vi tus problemas con el usuario root, tienes que poner una excepcion en la funcion yo decidi resolver la funcion de esta forma

Código: Seleccionar todo

function infousuario
{
    if [ $1 == root ];then
	dirhome=/root
    else
	dirhome=/home/$1
    fi
    echo '/* * * * * * * * * * * * * * * * * * * * * * * * * * * * */'
    echo -..........................Nombre: $1
    echo -.............proceso más antiguo: ;ps | head -2 #Creo que el comando es incorrecto
    echo -...........numero de directorios: `ls -RF $dirhome | grep / | wc -l`
    echo -.............numero de ficheros:
    echo -.....................disco usado: ;ls $dirhome
    echo -espacio ocupado por los ficheros: `du $dirhome | tail -1 | cut -f1`
    
    
    echo '/* * * * * * * * * * * * * * * * * * * * * * * * * * * * */'
}
Aun queda hallar el numero de archivos pero no deberia ser tan dificil aprovechandose de ls -RFl que devuelve el total de archivos en cada directorio
[url=http://www.sindominio.net/ayuda/preguntas-inteligentes]como hacer preguntas inteligentes[/url]
Sean tan amables de poner la etiqueta de (SOLUCIONADO) cuando consigan solucionar su problema
Avatar de Usuario
ferbyte
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar May 26, 2009 7:00 am

Re: script para sacar info de usuarios

Mensaje por ferbyte » Sab Sep 05, 2009 11:07 am

Muchas gracias Dracel, la verdad es que no esperaba respuesta tras tantos meses. Voy a probar todo lo que me dices y te cuento. Lo de los asteríscos es cierto que me ejecutaba algo parecido a un 'ls' pero ya lo solucioné. Es posible que tarde unos días en probarlo porque comienzo el curso y el lunes o martes me voy para Jerez (si no me cambian el destino) probablemente. Cuando esté asentado allí lo miraré. Gracias de nuevo.
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje