ELO-330: Programación de Sistemas
 Tarea 1: Detectando Cambios en Subárbol

   La idea es que su grupo ejercite la programación shell. Trate de cada integrante de su grupo resuelva esta tarea separadamente y luego se juntan a comentar sus soluciones o ideas sobre cómo abordar cada problema. 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 procesos largos. Por ejemplo, el directorio en que una empresa aloja su página web puede ser vulnerado para alojar en él para obtener datos personaes de usuarios de un banco. Un ejemplo de esto se puede ver en esta imagen. ¿Cómo podemos saber qué un sitio web ha sido alterado sin nuestro conocimiento?

Ejercicio 1: Resumen de un directorio
Nombre: ds: Directory Summary
Sintaxis: ds [dir]
Descripción: ds envía a su salida estándar la información del estado para cada archivo del directorio dado como argumento. Si éste es omitido, ds trabaja sobre el direcotrio actual. Como salida se muestra (una línea por archivo):

<Nombre del archivo>  <fecha de última modificación>
          :                                              :

Ejercicio 2: Resumen de un subárbol
Nombre: sts: Subtree Summary
Sintaxis: sts [dir]
Descripción: sts envía hacia la salida estándar la información de estado de cada archivo del subárbol definido por el directorio dado como argumento. Si éste es omitido, sts trabaja sobre el directorio actual. Como salida, para cada archivo del subárbol se muestra:

<ruta completa para el archivo> < fecha de última modificación>
           :                                                      :

Ejercicio 3: Detección de cambio en subárbol

Nombre: stcd: subtree chage detection
Sintaxis: stcd <ref_file> [dir]
Descripción: stcd recibe como parámetro un archivo con el formato de salida de sts y un directorio sobre el cual stcd genera el resumen del subárbol y lo compara con el archivo de referencia dado. Si no hay diferencia, envía a salida estándar el mensaje "No hay cambio". Si hay diferencia, este script muestra por la salida estándar los cambios detectados. Hay cambio si un archivo es borrado o agregado en el subárbol. También hay un cambio si un archivo cambia su fecha de última modificación.

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, cuando el directorio dado domo argumento no existe.
  Penalización por atraso: 5 puntos por día o fracción.
OBS: En caso que la tarea no esté especificada (clara) completamente, plantee la situación al profesor. Aquí se publicarán las aclaraciones necesarias.

Ayuda:
   - Estudie los ejemplos de programación shell vistos en clases.
   - Revise el uso del comando stat
   - Trabaje con tiempo, será muy grato para mi atender sus consultar y ayudar en su solución de esta tarea.