Centro de Informática
Sistemas Operativos II
Examen Diciembre 1999.
Solución de scripts.
Parte A. Sin consulta de material (24 puntos).
Responder brevemente las siguientes preguntas (4 puntos cada una).
1. Diferenciar los caracteres "|", "\", "/" y ";" en el shell, indicando
para qué se usa cada uno.
2. Indicar los modos del editor vi , qué puede hacerse
en cada uno, y cómo se pasa de uno a otro.
Escribir comandos para realizar las tareas indicadas:
1. Fijar permisos de ejecución para todos, lectura y modificación
para el dueño, lectura para el grupo, en el archivo vlub.
Hacerlo en modo simbólico y en modo absoluto.
2. Fijar los permisos del directorio yugo de modo que todos
puedan ejecutar los programas contenidos en él, pero sólo
pueda verlos y modificarlos el dueño del directorio.
3. Mostrar la ruta completa hacia el ejecutable dondestoy.
4. Buscar, en el directorio actual y en todos los subdirectorios,
un archivo de nombre core.
Parte B. Con libre consulta de material (76 puntos).
1. El comando last muestra una línea
por cada login:
victor :0
console Fri Dec 17
15:57 still logged in
reboot system boot 2.0.36
Fri Dec 17 15:57
(00:51)
victor :0
console Sat Dec
4 19:53 - 20:21 (00:27)
victor :0
console Sat Dec
4 19:31 - 19:53 (00:22)
cristina :0
console Sat Dec
4 19:17 - 19:31 (00:13)
victor :0
console Sat Dec
4 15:08 - 15:10 (00:01)
En el primer campo (columnas 1 a 9, incluyendo espacios al final)
está el nombre del usuario; en el último campo, encerrado
entre paréntesis, está el tiempo de conexión de ese
usuario (columnas 67 a 71, formato hh:mm). Crear un archivo horas.tmp
con el siguiente formato:
reboot:8:51
cristina:04:07
victor:06:00
victor:10:19
cristina:00:13
reboot:18:01
(14 puntos)
2. El archivo horas.tmp contiene información
de tiempo de login de los usuarios. Sus campos son, en este orden: nombre
de login, horas de conexión, minutos de conexión. El separador
es :. El archivo contiene registros en desorden de muchos usuarios. Escribir
un script que acumule el tiempo de conexión por usuario, y presente
una salida de la forma
Nombre: cristina - horas: 0, minutos: 22
Nombre: reboot - horas: 76, minutos: 0
Nombre: root - horas: 3, minutos: 54
Nombre: victor - horas: 53, minutos: 21
Se deberá extraer de la suma de minutos, las horas enteras, sumándolas
al conteo de horas, mostrando el resto de minutos (operador % en expr).
(26 puntos)
3. Para establecer una conexión PPP vía
modem, se dispone del comando pon uruguaynet; luego de esperar
30 segundos, la conexión estará establecida. Para cortarla,
se usa el comando poff. Inmediatamente que se establece la conexión,
se activa el agente de transporte de correo exim, para enviar
los correos en cola, un proceso que puede demorar un tiempo indeterminado.
Escribir un script que inicie la conexión, esperre que se establezca,
emita el comando fetchmail para traer los correos en el servidor
remoto, y corte la conexión luego de asegurarse que el proceso exim
haya finalizado. Si el proceso exim aún está corriendo,
se debe esperar 10 segundos, tantas veces como sea necesario.
Sugerencia: el comando ps -ax muestra los procesos corriendo.
Notar que si se usa grep, este proceso también puede estar
en la salida de ps.
(18 puntos)
4. Una empresa usa el campo de comentario de /etc/passwd
(campo 5) para guardar información de sus usuarios: nombre en la
vida real, teléfono interno en la empresa, dirección particular,
teléfono particular. Estos campos están separados por ",".
Escribir un script que pregunte al usuario un nombre de login y muestre
los datos del usuario, o un mensaje indicando que el usuario no existe.
El formato será similar a éste:
Nombre: victor
Nombre real: Víctor González-Barbone
Interno: 114
Dirección: J.Suárez 3023 bis ap. 801
Teléfono: 2096368
(18 puntos)