Laboratorio de Administración y Gestión de Redes y Sistemas 2019-2020
Grado en Ingeniería Telemática
Escuela Técnica Superior de Ingeniería de Telecomunicación
Universidad Rey Juan Carlos


Cambios en el documento

12 de noviembre

En la práctica 2.1, donde decía escribe un script en python ahora dice escribe un script en python 3.

Práctica 2.1. Acceso a un listado

El objetivo de esta práctica es que te familiarices con la librería subprocess para acceder a la shell de Linux desde python.

Crea el directorio ~/lagrs/practica02

Escribe un script en python 3 con el nombre ~/lagrs/practica02/mi_ls.py. Incluye un comentario en las primeras líneas tu nombre, apellidos y login.

Debe mostrar un listado con el nombre de los ficheros ordinarios del directorio actual y su tamaño. Aunque hay funciones específicas de python para manejar ficheros, usa subprocess.

Práctica 2.2. Creación de un bot de telegram

  1. Instala Telegram en tu móvil, en tu tablet o en tu portátil.

  2. Crea un bot de telegram, con el nombre que quieras.

  3. Ponle una foto al perfil del bot.

  4. Escribe un programa con el nombre ~/lagrs/practica02/hola_telegram.py que envíe un mensaje de tipo hola mundo a tu cliente Telegram y luego entre en un bucle infinito atendiendo a los mensajes que reciba (de cualquier usuario). Por cada mensaje recibido, envía una respuesta cualquiera al cliente y muestra todo en la pantalla del servidor.

  5. Usa format para componer la respuesta. No uses la concatenación de cadenas con el operador +

  6. El token no estará en el fuente. El programa leerá el token desde el fichero token.txt, que estará en el directorio actual. (En este caso, el directorio ~/lagrs/practica02/, pero no escribas este trayecto, que el script lea el fichero desde el directorio actual)

  7. Si el fichero con el token no existe o no se puede leer, el programa mostrará un mensaje de error por stderr y morirá. O si lo prefieres, levantará una excepción que describa el problema.

Práctica 2.3. Shell desde telegram

Ahora programarás un bot de telegram que aceptará del usuario una orden de shell, la ejecutará y responderá con el resultado de la ejecución. Escribe un programa con el nombre ~/lagrs/practica02/telegram_shell.py, según la siguiente especificación:

Al probar el bot, observa que el teclado virtual de tu móvil se pone en mayúsculas automáticamente al principio del mensaje. Por ejemplo, si tecleas l y s escribiría Ls, que no es una orden Unix correcta. La solución es forzar la minúscula en el teclado virtual (pulsado shift antes de la l)

Práctica 2.4 Cron

En esta práctica probarás el uso básico de cron. Los puestos físicos del laboratorio no tienen cron instalado, ya que son máquinas que no están siempre encendidas. Haz el ejercicio en uno de los puestos virtuales del laboratorio.

Escribe brevemente las tablas de cron que usas, en el fichero ~/lagrs/practica02.txt

  1. Comprueba que cron funciona: Programa en el host una tarea que ejecute cada minuto touch sobre el fichero /tmp/test_cron_tulogin (donde tulogin es tu login en el laboratorio). Consulta la fecha de este fichero, si todo está en orden, borra esta entrada de la tabla de cron

  2. Escribe el script ~/lagrs/practica02/escribe_log en bash o python que añada la cadena probando cron, junto con la fecha y la hora, al fichero ~/lagrs/log.txt Como en cualquier log, debes añadir al final, sin borrar los mensajes precedentes.

    No le pongas extensión al script, ni .sh ni .py.

    Puedes usar el mandato de shell date

  3. Programa una tarea que ejecute el script anterior cada minuto. Cuando veas que funciona, modifica la entrada para que se ejecute a las 9 de la mañana, de lunes a viernes.

Práctica 2.5 Monitorización de directorios

El propósito de este ejercicio es programar un script que vigile una serie de directorios, y nos envíe un mensaje de telegram si el número de ficheros que contiene alguno de ellos excede cierto límite. También si tamaño de alguno de los directorios excede cierto límite.

Escribe un programa con el nombre ~/lagrs/practica02/monitor.py, según la siguiente especificación:

Revisión de los nombres

Ejecuta el script ~mortuno/revisa practicas lagrs para comprobar que los nombres de los ficheros son correctos.