Article View: es.comp.os.linux.programacion
Article #6509Re: Ayuda con un Script en perl
From: David Asorey Álvarez
Date: Fri, 13 Jun 2003 08:31
Date: Fri, 13 Jun 2003 08:31
65 lines
2822 bytes
2822 bytes
anxo_anton@ya.com (Anxo) escribi�:
> Hola a todos.
>
> Tengo que hacer un programa en perl, pensado para el
> administrador, que produzca la siguiente informaci�n sobre los
> usuarios del sistema:
>
> usuario (UID) directorio home espacio seguridad
> -----------------------------------------------------------------
> alberto (464) /home/alberto 845495K
> laura (0) /alumnos/laura 711K UID=0
> monitor (462) /home/monitor 882212K PASSWD
>
>
> El apartado de seguridad estar� en blanco, salvo si se da alguno de
> estos casos:
>
> * El user id es cero (mensaje: UID=0)
> * la informaci�n sobre password en /etc/passwd es "!" o "*"
> (mensaje: PASSWD)
>
>
> Bueno, yo he llegado a la conclusi�n de que tengo que abrir el fichero
> /etc/passwd para leer la informaci�n de los usuarios que viene
> contenida en �l, en lo que se refiere a nombre contrase�a y user id.
> El caso es que no se si tengo que hacrlo en un array o como una
> variable escalar
En el grupo es.comp.os.linux.programacion es probable que te puedan
echar una manita, no en es.comp.os.linux.misc.
Redirijo la respuesta a ecol.programacion
Una pista de todas formas:
open(FICHERO, "/etc/passwd");
while(<FICHERO>) { # Leemos l�nea a l�nea el fichero
# Partes en trozos la l�nea. La tienes en la variable $_
@campos = split(":", $_);
# Haces lo que quieras con cada trozo
}
close(FICHERO);
> y en el apartado espacio tampoco se de donde sacar la
> informaci�n, os agradecer�a que me orientaseis sobre como debo enfocar
> el script
Dentro del while puedes llamar el comando "du" (disk usage):
open(FICHERO, "/etc/passwd");
while(<FICHERO>) {
@campos = split(":", $_);
print `du -hs $campos[5]`;
}
close(FICHERO);
�Ya lo tienes casi todo hecho! :-)
Un saludo.
David.
Technical Details
Message-ID:
<1759581e.0306130031.366b76d5@posting.google.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mailReferences:
<9d6dc190.0306121420.35038fc6@posting.google.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,13563a4d0465ab5b,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-06-13 01:31:41 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!postnews1.google.com!not-for-mail From: forodejazz@yahoo.es (David Asorey Álvarez) Newsgroups: es.comp.os.linux.programacion Subject: Re: Ayuda con un Script en perl Date: 13 Jun 2003 01:31:40 -0700 Organization: http://groups.google.com/ Lines: 65 Message-ID: <1759581e.0306130031.366b76d5@posting.google.com> References: <9d6dc190.0306121420.35038fc6@posting.google.com> NNTP-Posting-Host: 62.22.70.33 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1055493101 2738 127.0.0.1 (13 Jun 2003 08:31:41 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: 13 Jun 2003 08:31:41 GMT