Documentación Tarea Nº1
Programación de Sistemas


Profesor:  Agustín González V.
Ayudante: Christian Lalanne

Autor: Eduardo González Fisher
Rol: 2021010-9

 

Nombre:
    ua - Usuarios de Aragorn. Lista usuarios reciéntemente conectados a aragorn.

Sinopsis:
    ua

Descripción:

El script tiene como finalidad dar un detalle de quienes se han conectado a la máquina aragorn.elo.utfsm.cl últimamente. Mostrando la cantidad de veces que lo han hecho (Nº de consolas abiertas), el usuario (login), su nombre completo y también si se tiene el permiso para escribir en el directorio raíz de cada usuario.
El script obtiene primeramente la información que se necesita de todos los usuarios del sistema, para luego realizar una búsqueda de los usuarios recientes y verificar si se ha conectado o no.
El formato de presentación de resultados en pantalla es el siguiente:
#Consolas Nombre Usuario Login Permiso de Escritura


Problemas enfrentados:

El primer problema que me encontré fue que sólo podía distinguir 3 palabras para el nombre del usuario, y como algunos usuarios tienen nombres largos, de 4, 5 ó 6 palabras, esto no se veía bien. Luego de comprender bien el uso de IFS, pude discriminar el nombre completo de cada usuario y poder presentarlo de mejor modo.

El segundo problema, más bien no fue un problema, sino poca eficiencia, fue el tiempo de ejecución del script. Demoraba alrededor de 100 segundos en completar la labor, algo excesivo a mi parecer. Esto se debía que a cada usuario encontrado con el comando LAST, se recurría al comando NISCAT para encontrar sus datos. Como el tamaño del resultado de NISCAT es varias veces mayor al de LAST, se perdía mucho tiempo en esa parte. Para solucionarlo, se reestructuró el algoritmo. Ahora se lee sólo 1 vez el resultado de NISCAT, pero varias veces el de LAST. De esta manera el tiempo de ejecución se reduce a 45 segundos aproximadamente.

Otro problema fue que en el archivo resultante al comando LAST, existen líneas que no corresponden a conexiones de usuarios, tales como información de reinicio de la máquina, fecha de inicio del registro, y otros. Para solucionarlo se optó por ignorar las líneas que contuviesen patrones indeseados.

El cuarto obstáculo, se debe a un detalle del comando LAST. Éste entrega la información del login, con un largo de 8 caracteres máximo, limitando a aquellos usuarios con logins extensos. Esto provoca un conflicto al comparar el login con el listado de usuarios. Para solucionarlo, se optó por manipular el archivo que contiene a todos los usuarios. Se truncó a 8 caracteres los logins, y si esto resultase en la repetición de login (ej. jgonzalezd y jgonzalezr, ambos quedan en jgonzale ) se deja uno solo, eliminando a los repetidos.


Diagrama de Flujo:

©2004. Eduardo González Fisher.