Article View: es.comp.os.linux.programacion
Article #1010Re: Elercicios PERL y BASH
From: Jesús M. Navarro
Date: Wed, 14 Jun 2006 22:44
Date: Wed, 14 Jun 2006 22:44
114 lines
6417 bytes
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!newsReferences:
<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