\documentclass[a4paper]{article}
\usepackage{fullpage}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{colortbl}
%\usepackage {html}
%\usepackage {hthtml}
\usepackage {hyperref}



\begin{document}
\begin{large}
\noindent
\title{Prácticas con diversas herramientas de administración} 
Laboratorio de Administración y Gestión de Redes y Sistemas 2023-2024\\
Grado en Ingeniería Telemática  \\
\href
{https://www.urjc.es/eif}
{Escuela de Ingeniería de Fuenlabrada}\\
\href
{https://www.urjc.es}
{Universidad Rey Juan Carlos}
\hrule
\end{large}

\vspace{0.5cm}


%\subsection*{Cambios en el documento}
%\begin{itemize}
%\item
%\end{itemize}


\section*{Observaciones}
\begin{itemize}
\item
Crea el fichero  \verb|~/lagrs/practica03.md|,
que contendrá la memoria que escribas sobre  este bloque de
prácticas.
En la primera línea, indica tu nombre y login.
\end{itemize}



\section*{Práctica 3.1. FHS }

Busca en los exámenes de teoría resueltos de cursos anteriores todas
las preguntas sobre
FHS, \emph{Filesystem Hierarchy Standard}, indica en qué convocatorias
han aparecido y resume su contenido.



%--------------------------------------------------------
\section*{Práctica 3.2. Recode}
Crea el directorio \verb|~/lagrs/practica03/recode| y escribe dentro 
los ficheros que solicite este ejercicio
\begin{enumerate}
\item
Genera 2 o 3 ficheros de texto plano, copiando y pegando desde cualquier
página web. Ponles extensión .txt

\item
Comprueba la codificación empleada en estos fichero

\item
Comprueba la codificación empleada en tu máquina

\item
Haz una copia de cada fichero en una codificación distinta. (latin1, 
alguna codificación unicode distinta a la codificación por omisión...)

Ponle nombres añadiendo un sufijo que indique la codificación, entre el
nombre de fichero y la extensión \verb|.txt|. Ejemplo: 
  \begin{footnotesize}
  \begin{verbatim}
quijote.latin1.txt   hans_reiser.utf16.txt
  \end{verbatim}
  \end{footnotesize}

\end{enumerate}


%\section*{Práctica 3.3. netstat }

%Abre una sesión ssh entre tu ordenador y un puesto del laboratorio. Lanza netstat en tu
%ordenador y analiza el resultado. Lánzalo en el puesto y analiza el resultado


%--------------------------------------------------------
\section*{Práctica 3.2. Recode}
Crea el directorio \verb|~/lagrs/practica03/recode| y escribe dentro 
los ficheros que solicite este ejercicio
\begin{enumerate}
\item
Genera 2 o 3 ficheros de texto plano, copiando y pegando desde cualquier
página web. Ponles extensión .txt

\item
Comprueba la codificación empleada en estos fichero

\item
Comprueba la codificación empleada en tu máquina

\item
Haz una copia de cada fichero en una codificación distinta. (latin1, 
alguna codificación unicode distinta a la codificación por omisión...)

Ponle nombres añadiendo un sufijo que indique la codificación, entre el
nombre de fichero y la extensión \verb|.txt|. Ejemplo: 
  \begin{footnotesize}
  \begin{verbatim}
quijote.latin1.txt   hans_reiser.utf16.txt
  \end{verbatim}
  \end{footnotesize}

\end{enumerate}


\section*{Práctica 3.3. tmux }
El objetivo de esta práctica es que uses \emph{tmux} para mantener demonios
corriendo sin terminales abiertos, así como multiplexar sesiones.


Prepararás una sesión de tmux, con dos ventanas:
\begin{itemize}
\item
Una con dos paneles, uno para el script \emph{tictac} y otro
para la orden \emph{vmstat}.
\item
Otra con una única panel, para la orden top.
\end{itemize}

Hazlo según los siguientes pasos:

\begin{enumerate}
%\item
%Lee el tutorial sobre tmux que encontrarás googleando 
%%\emph{jeff linux tmux tutorial}
%\htlink{jeff linux tmux tutorial}{http://www.rackaid.com/resources/linux-tmux-tutorial-and-how-to}


\item
Empieza familiarizándote con tmux, probando los ejemplos de las transparencias. No hace
falta que documentes esto en la memoria.

\item
Crea el fichero  \verb|~/lagrs/practica03/tictacTULOGIN| y pega en él este script.
(TULOGIN serán las primeras 4 letras tu nombre de usuario en el laboratorio).

  \begin{footnotesize}
  \begin{verbatim}
#!/bin/bash
fichero_salida=/tmp/log.$USER.txt
while true
do 
    sleep 1
    echo -n "tic"  >> $fichero_salida
    sleep 1
    echo " tac"  >> $fichero_salida
done
  \end{verbatim}
  \end{footnotesize}

Pruébalo usando \verb|tail -f| (que escribe en la salida estándar las últimas líneas de un fichero,
 y queda a la espera de que haya cambios en el fichero, para escribirlos también).
\item
Busca una máquina linux del laboratorio a la que puedas entrar por ssh.

\item
Copia \verb|tictac| al directorio \verb|/tmp/| de la máquina remota.

\item
Entra por ssh en la máquina remota.

\item
Haz lo necesario para invocar a \emph{tictacTULOGIN} y que quede funcionando en una sesión de tmux.

\item
Deja \emph{tictacTULOGIN} corriendo y  sal de la máquina remota.

\item
Vuelve a entrar por ssh y recupera el control de la sesión de \emph{tmux}
con \emph{tictacTULOGIN}.

\item
Crea dentro de la ventana donde está \emph{tmux} otro panel. Ejecuta en él \verb|vmstat 2|.

\item
Muévete entre un panel y otro.

%\item
%Renombra las ventanas. La primera se llamará \emph{reloj}. La segunda, \emph{control de memoria}.

\item
Deja todo corriendo. Crea otra ventana y ejecuta en ella
la orden \verb|top|.

%\item
%Pon a esta última ventana como nombre \emph{top}.


\item
Sal de la máquina remota, dejando todo en marcha (tictacTULOGIN, vmstat y top).

\item
Vuelva a entrar y comprueba que sabes recuperar todos los programas (los dos 
paneles de la primera ventana y el panel único de la segunda ventana)

\item
Mata con \verb|Crl C| los procesos de las tres ventanas. Cierra todas 
las ventanas. Comprueba (con ps) que no queda ninguna sesión de tmux.
Cierra la sesión de ssh.

\end{enumerate}


\section*{Práctica 3.4 Cron. (OPTATIVA)}

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, en una máquina virtual o en tu ordenador de casa.

Describe brevemente las tablas de cron que usas, en el fichero
\verb|~/lagrs/practica03.txt|


\begin{enumerate}
\item
Comprueba que cron funciona: Programa en el host una tarea que ejecute
cada minuto 
\emph{touch} sobre el fichero 
\verb|/tmp/test_cron_tulogin|
(donde \emph{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

\item
Escribe el script 
\verb|~/lagrs/practica03/escribe_log| 
en bash o python que añada la cadena \emph{probando cron}, junto
con la fecha y la hora, al fichero 
\verb|~/lagrs/log.txt| 
%(no lo confundas con \verb|~/Dropbox/lagrs/pc02/log.txt|). 
Como en cualquier log, debes añadir al final, sin borrar los mensajes precedentes.

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

Puedes usar el mandato de shell
\verb|date|
\item
Programa una tarea que ejecute el script anterior cada minuto. Cuando veas que
funciona, modifica la entrada para que se ejecute con cierta periodicidad, según
los ejemplos que vimos en clase. Por ejemplo a las 9 de la mañana, de lunes a viernes, o cualquier otro valor que te resulte fácil comprobar en ese momento.

\end{enumerate}



\section*{Optativas. Revisión de los ficheros y directorios}

\begin{enumerate}
\item
Revisa lo que indica la página de la asignatura sobre
\href
{https://gsyc.urjc.es/~mortuno/index_lagrs#pr%C3%A1cticas-optativas}
{prácticas optativas}.

\item
Ejecuta el comando \verb|ncdu| en tu directorio \verb|~/lagrs|, no debería pesar más de unos cuantos megas.
Presta atención a los ficheros de la práctica 1.12: deberías haber creado todos los ficheros que solicita
este apartado en un directorio auxiliar, no en \verb|~/lagrs|. Si tienes algún fichero .ova, tgz de gran tamaño
o similar, bórralo (lo único relevante ahora de esta práctica es lo que has escrito en la memoria)

\item
Con la ayuda de \verb|ncdu|, comprueba que tus directorios
\verb|~/lagrs/practica01|,
\verb|~/lagrs/practica02| y
\verb|~/lagrs/practica03|
pesan como mucho unos cuantos kbytes. Borra lo que sobre. Envía un e-mail al profesor en caso de duda.
\item
Comprueba que tu directorio
\verb|~/lagrs/images| tenga un tamaño \emph{razonable}. 
Envía un e-mail al profesor en caso de duda.

\item
Ejecuta \verb|~mortuno/revisa practicas lagrs| para comprobar que los nombres de los
programas son los correctos.
\end{enumerate}
\end{document}

