ELO-330: Programación de Sistemas
Tarea 1: Procesos Antiguos y Usuarios Recurrentes
La idea es que su grupo ejercite
la programación shell. Trate que cada integrante de su grupo resuelva
esta tarea separadamente y luego comentan sus soluciones o
ideas sobre cómo abordar cada ejercicio. Este camino conduce a
un mayor aprendizaje individual y mejor solución grupal.
Objetivos: aplicar programación shell.
Contexto: Hay varias tareas administrativas regulares que requieren
varios comandos. Por ejemplo, identificar qué proceso de usuario lleva
tiempo inusual corriendo y ocupando recursos (CPU) en una máquina.
Podría tratarse de un proceso o comando ocioso. Otra situación es
conocer qué usuarios trabajan a la máquina regularmente.
Ejercicio 1: Proceso más antiguo
Nombre: op: Oldest Process
Sintaxis: op [a | p]
Descripción:
op envía a pantalla el nombre de usuario real, el comando ejecutado, el
tiempo que lleva corriendo. La opción p permite listar el comando
más antiguo ejecutado por un profesor (si lo hay). La opción a permite
listar el comando más antiguo de un usuario alumno. Cuando la opción es
omitida lista el comando más antiguo del sistema. El formato de salida
es:
Nombre real del usuario: Agustin Gonzalez # esto se lista según salida de getent passwd
Comando ejecutado: ping www.google.cl
Tiempo: DD-hh:mm:ss # días - horas:minutos:segundos
Nota: revise comando ps, en particular opciones para especificar el
formato estándar de salida. Revise comando getent passwd. Revise
comando date.
Ejercicio 2: Usuario recurrente
Nombre: ru: recurrent user
Sintaxis: ru
Descripción: ru muestra por pantalla los tres usuarios
que más conexiones a aragorn han hecho (mayor número de accesos a
aragorn) durante el tiempo que muestre el comando last. Como salida se muestra:
1°:
<aquí va nombre real del usuario>, username: <su nombre de
usuario>, número de ingresos: <número de ingresos>
2°: idem
3°: idem
Nota: revisar comando last, por ejemplo ver opción -w, comando sort, comando, uniq
Evaluación de la Tarea y
qué entregar:
La tarea será revisada en aragorn.elo.utfsm.cl Confirme que su
solución corre bien allí.
La evaluación de esta tarea será según:
70% Que cada script cumpla plenamente lo pedido.
30% Documentación. Ésta
debe incluir sus scripts y un archivo readme.txt. Enviar la tarea vía
correo a cuenta gmail elo330 punto utfsm (usted debe descubrir el correo con
estos datos). En archivo readme.txt incluir descripción simple de la
estrategia usada para cada script, explicar cómo descomprimir su solución, cómo
preparar cada script para su ejecución y cómo correrlos. Indicar
además casos en que el script pudiera fallar; por ejemplo, si el nombre de usuario no existe.
Penalización por atraso: 5 puntos por día o fracción.
OBS: En caso que la tarea no sea del todo clara (alguna especificación completa), plantee
la situación al profesor. Aquí se publicarán las aclaraciones
necesarias.
Ayuda:
- Estudie los ejemplos de programación shell vistos
en clases.
- Trabaje con tiempo, será muy grato para mi atender sus
consultar y ayudar en su solución de esta tarea.