Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Quién me ayuda con el ejercicio?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mie Ago 23, 2006 9:58 am
fati
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Ago 2006
Mensajes: 4
Quién me ayuda con el ejercicio? Responder citando

Hola, tengo que hacer un ejercicio para el lunes, y no tengo idea de como empezar a echarle mano, si alguien me pudiese ayudar...
Ahí va el enunciado....

En la configuración de los niveles de arranque de un sistema linux se utilizan tanto ficheros como directorios. Suponga que usted es el administrador y desea crear un programa en perl llamado consulta_init que pretende agilizar las tareas de mantenimiento de los niveles de arranque.
El programa tendrá el siguiente formato:

admon_init [ -t | -m | -o nivel | -s servicio [nivel] | -k servicio [nivel]]
donde:

-t mostrará para cada terminal de texto, los niveles que la activan.

-m mostrará un menú cuyo contenido se describe más adelante. Esta opción será la establecida por defecto, es decir, en el cado de no introducir ninguna, será la que se ejecute.

-o nivel establecerá el nivel indicado como el nivel de arranque por omisión.

-s servicio [nivel] activará el servicio indicado en el nivel especificado. El orden de activación se preguntará al usuario. Si no se indica nivel se realizará sobre el nivel de arranque del sistema.

-k servicio[nivel] desactivará el servicio indicado en el nivel especificado. El orden de activación se preguntará al usuario. Si no se indica nivel se realizará sobre el nivel de arranque del sistema.

En cado de elegir la opción -m, el menu será:

1.Mostrar todos los servicios disponibles para todos los niveles.

2.Mostrar los servicios que se lanzan para un determinado nivel, ordenadors por orden de ejecución. El nivel de preguntará al usuario.

3.Mostrar los servicios que se lanzan para un determinado nivel, ordenadors por orden de parada. El nivel de preguntará al usuario.

4.Mostrar el nivel de arranque por omisión.

5.Activar un sercicio a un nivel. El servicio, el nivel y el orden de activación se preguntará al usuario.

6. Desactivar un sercicio a un nivel. El servicio, el nivel y el orden de activación se preguntará al usuario.

7. Salir.

NOTAS: Para desarrollarlo cree copias de los ficheros /etc/inittab y el directorio /etc/init.d .
Nunca podrá utilizar la orden system.

Este es el enunciado,espero que puedan ayudarme.
Gracias
Mensaje Mie Ago 23, 2006 1:37 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4213
Ubicación: Valladolid, España
Responder citando

Yo te lo hago por 100€.
Mensaje Jue Ago 24, 2006 1:14 am
fati
Perlero Nuevo
Perlero Nuevo
Registrado: 23 Ago 2006
Mensajes: 4
Responder citando

uffff, no tengo, dejalo, ya me buscaré la leña.
Gracias de todas formas.
Mensaje Jue Ago 24, 2006 5:19 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4213
Ubicación: Valladolid, España
Responder citando

Para leer los argumentos pasados al programa, es mejor usar un módulo como Getopts o similar.

Hay una cuestión de lógica que deberás incluir al principio del programa: si la opción '-m' está puesta o no hay ninguna opción puesta, entonces debes saltar a la zona de presentación del menú.

Para la opción -t, sólo hay que leer el fichero inittab y filtrar las líneas que se refieren a las terminales virtuales (vt) y presentarlas en pantalla (con algún filtrado añadido para que salgan guapas.

Con -o, significa que hay que editar el fichero inittab y cambiar un valor. Eso se puede hacer muy fácil en Perl con el modo de edición de línea (-i).

Con -s hay que hacer varias cosas. Primero hay que comprobar que el servicio dentro del init.d existe. Leer el nivel o asignarle el de por defecto. Comprobar que el nivel está dentro de los valores normales. Pedir al usuario el número de orden de activación. Comprobar que está dentro de los límites. Comprobar que el servicio ya está activado anteriormente. Borrar el servicio de su orden de activación anterior y ponerlo en el nuevo siempre y cuando no sean el mismo.

La opción -k es lo mismo, pero la operación se refiere a eliminar, por lo que se puede convertir en subrutina este proceso, ya que el proceso de eliminar un servicio lo tenemos en varias opciones.

Para la opción -m, hay que hacer un bucle donde se presente el menú y esperar la entrada del usuario. Responder según la entrada hecha y repetir. Las operaciones a realizar son algunas de las comentadas, por lo que parte del código se mete como subrutina para no repetirlo.
Mensaje Jue Ago 24, 2006 7:38 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
Responder citando

Hola:

Ya te dió explorer varios tips para que puedas comenzar con tu ejercicio. Conforme vayas avanzando y te vayas atorando con gusto te podemos ayudar, pero recuerda que hay una gran diferencia entre ayudarte a hacer las cosas, a de plano hacer todo por ti.


Saludos
Mensaje Jue Ago 24, 2006 11:36 am
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

Ahora a dedicarnos a hacer tareas?

<sarcasm>YAY!</sarcasm>
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group