🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #6509

Re: Ayuda con un Script en perl

#6509
From: David Asorey Álvarez
Date: Fri, 13 Jun 2003 08:31
65 lines
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-mail
References: <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