🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
3 messages
3 total messages Started by Carmelo Sat, 10 Jun 2006 08:24
Elercicios PERL y BASH
#1006
Author: Carmelo
Date: Sat, 10 Jun 2006 08:24
53 lines
3594 bytes
Alguien podria explicarme como hacer estos ejercicios_
 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

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.

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).
Ejercicio 2
Escribir un programa, 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)
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).

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

	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).
Re: Elercicios PERL y BASH
#1007
Author: Javier M Mora (jamarier)
Date: Sat, 10 Jun 2006 08:57
24 lines
1915 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Carmelo escribi�:
> Alguien podria explicarme como hacer estos ejercicios_

Si tienes dudas puntuales sobre algunos aspectos de los ejercicios,
intentar� ayudarte seg�n mis conocimientos. Pero hacerte ejercicios de
clases (por otro lado bastante sencillos) no creo que sea lo mejor para
nadie.

Los ejercicios incluyen algunas pistas dentro. Donde dice:�leer man ___�
deber�as lo primero leer dicho manual. Sabiendo lo que tienes a tu
disposici�n, ser� m�s f�cil determinar que tienes que hacer t� (el
resto).

atte. javier m mora
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)

iD8DBQFEiolfpRHCj3lPPYMRAij5AJ9Nbjhu47S815x44E3Z5YyJeGWXzwCeOqPg
K4KbuEb5a543GfZ4YaaD6RE=
=LHqB
-----END PGP SIGNATURE-----
Re: Elercicios PERL y BASH
#1010
Author: 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.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads