🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Elercicios PERL y BASH

#1010
From: Jesús M. Navarro
Date: Wed, 14 Jun 2006 22:44
114 lines
6417 bytes
Hola, Carmelo:

Carmelo escribi�:

> Alguien podria explicarme como hacer estos ejercicios_

Parece sencillo.

>  Ejercicio 1
> Supongamos que un PC bajo Linux tiene dos discos duros: uno de ellos es
> el disco de trabajo, y el otro se usa solo para mantener una copia de
> seguridad. Se trata de escribir un programa en bash que haga el
> mantenimiento de la copia de seguridad del segundo disco. El programa
> se llamar� "actualizaBackup", y tendr� dos argumentos: a) el sistema
> de ficheros, o el directorio, cuya copia se va a actualizar, y b) el
> directorio en que esta montado el segundo disco. Por ejemplo:
> 
> actualizaBackup /home /disco2

Aqu�, lo que tienes que hacer es estudiar c�mo se maneja Bash con la entrada
de par�metros, de forma que tu script pueda tomarlos y utilizarlos
adecuadamente.

> 
> El programa comparar� las fechas del fichero original y la copia,
> modificando la copia si tiene una fecha anterior. Esta operaci�n se
> har� para todos los ficheros bajo el directorio indicado.

Bueno, aqu� tendr�s que buscar la forma de invocar alg�n programa externo, o
alg�n "built in" de Bash para que te "expanda" el primer par�metro, y as�
saber cu�les son los elementos de los que realmente habr� que hacer copia. 
Despu�s, tendr�s que ver c�mo averiguar la fecha de �ltima modificaci�n de
un fichero o directorio y c�mo comparar fechas, para poder comparar la de
�ltima modificaci�n en el disco de origen y en el elemento del mismo nombre
(si existe) en el disco de copia.  Si el elemento en el disco de origen
tiene una fecha de �ltima modificaci�n m�s "joven" que el elemento
equivalente en el disco, o si no hay elemento equivalente en el disco,
tendr�s que hacer la copia.

> 
> Finalmente, se debe explicar c�mo se utilizar�a el comando cron para
> que esa actualizaci�n se ejecute autom�ticamente una vez por semana
> (leer man cron).

Pues se lee uno la p�gina man de cron y se miran ejemplos que uno ya tenga
en su sistema en los sitios indicados por dicha p�gina man, y se responde
la pregunta.

> Ejercicio 2
> Escribir un programa, pensado para el administrador, que produzca la
> siguiente informaci�n sobre los usuarios del sistema:

Esto de "pensado para el administrador" quiere decir:
1/ Que uno puede asumir (aunque no estar�a de m�s comprobarlo), que lo va a
ejecutar 'root'.
2/ Que es un "dirty hack", que no necesita ser "a prueba de tontos", por lo
que te puedes evitar la mayor parte de las comprobaciones de seguridad, en
la presunci�n de que el administrador del sistema sabe lo que se hace.

> 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)

No indicas el lenguaje en el que deber� ser procesado.  En todo caso, PISTA:
tanto 'getent' como el fichero /etc/passwd contienen la informaci�n que
necesitas.

> Ejercicio 3 
> El fichero ~/.netscape/bookmarks.html contiene las direcciones web
> marcadas como bookmarks por un usuario de netscape (~ representa su
> directorio home). A menudo, algunas de estas direcciones dejan de ser
> v�lidas. Se trata de escribir un programa en Perl que compruebe todos
> los bookmarks de un usuario, e informe sobre aquellas direcciones que
> ya no son v�lidas (ya no existen).

Necesitar�s un bucle que sea capaz de encontrar todas las URLs de ese
fichero (tendr�s que comprobar si es m�s c�modo utilizar expresiones
regulares, o posiciones del fichero) y luego, bien abrir un canal
manualmente para comprobar la respuesta del servidor en el otro extremo,
bien revisar CPAN para encontrar herramientas que te faciliten la labor,
bien usar utilidades externas (como curl) para facilitar el trabajo.

> 
> El programa se llamar� "compruebaBookmarks", tendr� como argumento el
> nombre completo del fichero de bookmarks que se desea comprobar, y la
> salida ser� parecida a �sta:
> cea-linux@mycomputer:~$ compruebaBookmarks ~/.netscape/bookmarks.html

En este caso tendr�s que hacer algo equivalente a lo del ejercicio primero
pero para Perl: averiguar c�mo procesar par�metros pasados a un script
Perl.

> 
> Las siguientes direcciones no son v�lidas:
> 
> http://www.uned.es/convocatorias.html
> http://www.redhat.es/3.2/index.html
> 
> Para realizar la comprobaci�n de que una direcci�n est� operativa,
> se usar� el comando wget (ver man de este comando).

Mira: ya te dicen que tendr�s que optar por la tercera posibilida: echar
mano de utilidades externas, �si es que te lo dan todo hecho!

En fin, espero que mi mensaje te ayude: los ejercicios te pueden resultar un
poquito pesados, pero comprobar�s que son f�ciles.
Technical Details
Message-ID: <h3g6m3-81m.ln1@mithrandir.undominio.net>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!mithrandir.undominio.net!news
References: <1149927840.078188.230440@u72g2000cwu.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,100935c8736a7167
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!mithrandir.undominio.net!news
From: Jesús M. Navarro <jmnav@undominio.net>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Elercicios PERL y BASH
Date: Thu, 15 Jun 2006 00:44:31 +0200
Organization: Telefonica Data Espagna
Lines: 115
Message-ID: <h3g6m3-81m.ln1@mithrandir.undominio.net>
References: <1149927840.078188.230440@u72g2000cwu.googlegroups.com>
NNTP-Posting-Host: 104.red-213-98-53.staticip.rima-tde.net
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit
X-Trace: nsnmrro2-gest.nuria.telefonica-data.net 1150326485 14368 213.98.53.104 (14 Jun 2006 23:08:05 GMT)
X-Complaints-To: usenet@nsnmrro2-gest.nuria.telefonica-data.net
NNTP-Posting-Date: Wed, 14 Jun 2006 23:08:05 +0000 (UTC)
User-Agent: KNode/0.10.2