Tabla de contenidos
En la empresa SAUCEM S.L. de la que eres jefe de proyecto se trabaja por grupos. Cada grupo de trabajo debe realizar una serie de proyectos, elaborar un presupuesto, llevar a cabo un conjunto de actividades, etc. Para ello, cada grupo de trabajo debe organizarse estableciendo un conjunto de carpetas o directorios de manera estructurada, y ubicando correctamente sus ficheros en ellas. Así mismo, cada grupo de trabajo debe poder tener mecanismos para obtener información del sistema, y para eliminar algunas carpetas y ficheros cuando sea necesario.
Como jefe de grupo de trabajo en SAUCEM S.L. se te pide que realices una serie de comandos en Linux para crear, y gestionar las carpetas e información del sistema relacionado con tu grupo de trabajo. En concreto, tienes que realizar 3 sub-tareas, que se pasan a detallar a continuación. Es importante que los comandos que vayas ejecutando en cada sub-tarea los vayas poniendo en un fichero de texto, cada comando en una línea, pues al final deberás entregar dicho fichero:
Creación de un conjunto de carpetas y ficheros. En esta tarea debes ejecutar una serie de comandos en Linux para la creación de un conjunto de directorios y ficheros con unos permisos concretos.
Debes crear la estructura de carpetas o directorios
que indica la figura, debiendo estar el directorio
“Grupo_Trabajo” debajo de la ruta
/home/teleco
. Ejecuta la secuencia de comandos
necesaria para ello, teniendo en cuenta que la localización inicial
del directorio donde te encuentras en el sistema puede ser
cualquiera y la secuencia debe funcionar en cualquier caso
independientemente del directorio inicial donde te encuentres. Para
todo ello, debes utilizar los comandos mkdir y
cd. Otro requisito obligatorio es que tienes que
utilizar el comando mkdir tanto pasándole una
ruta absoluta en uno de los comandos como una relativa en otro de
los comandos.
A continuación, debes asignar los permisos adecuados
a cada directorio, para que puedas controlar quien accede a dichos
directorios y con qué permisos. Todos los directorios deberán tener
permisos de lectura y ejecución para los miembros del mismo grupo en
Linux, y además permisos de escritura para el propietario de los
mismos, y ningún permiso para el resto. Así mismo hay una excepción
a esto, para el directorio de Presupuesto
, los
permisos deben ser de lectura, escritura y ejecución para el
propietario del mismo, y ningún permiso para el resto, ya que sólo
al jefe de proyecto le estará permitido operar con los archivos de
presupuesto. Realiza la secuencia de comandos necesaria para asignar
todos estos permisos, teniendo en cuenta que la localización inicial
del directorio donde te encuentras en el sistema puede ser
cualquiera y la secuencia debe funcionar en cualquier caso
independientemente del directorio inicial donde te encuentres. Para
todo ello, debes utilizar los comandos chmod y
cd. Otro requisito obligatorio es que tienes que
utilizar el comando chmod tanto pasándole una
ruta absoluta en uno de los comandos como una relativa en otro de
los comandos.
Seguidamente, debe crear un fichero
descripcion.txt
debajo del directorio
P1
que incluya en su interior el texto
“Descripción del proyecto”. Para ello, debe utilizar de
manera obligatoria el comando echo y la
redirección de salida.
Copie el fichero
descripcion.txt
desde la carpeta
P1
hacia las carpetas P2
y
P3
, de manera que también allí quede
presente. Para ello debe utilizar el comando
cp.
Copie el fichero
descripcion.txt
también hacia el directorio de
Presupuesto
, y al directorio de
Comunicacion
utilizando el comando
cp. A continuación cambie de nombre el fichero
que está bajo el directorio Presupuesto
para
que se llame presupuesto.ax
, utilizando el
comando mv. Seguidamente reemplace completamente
el texto del fichero por el siguiente texto: “Fichero de
presupuesto”. Para ello, otro requisito es que debe utilizar
obligatoriamente el comando echo y la redirección
de salida.
Mueve el fichero
descripcion.txt
que está en el directorio
Comunicacion
, hacia el directorio de
Otros
, y al mismo tiempo cámbielo de nombre
para que se llame otros.txt
. Para todo ello,
utilice el comando mv. Seguidamente remplace
completamente el texto del fichero por el siguiente texto:
“Otros asuntos”. Para ello, otro requisito es que debe
utilizar obligatoriamente el comando echo y la
redirección de salida.
Utilizando el comando echo y la
redirección de salida, modifica los ficheros de “descripcion.txt”
que hay debajo de los directorios P1
,
P2
, y P3
, para que
incluyan un espacio en blanco y el número 1, 2 o 3 respectivamente,
anexados al texto que ya había en el fichero.
Para todos los ficheros que se han ido creando, asigne los mismos permisos que los directorios que los contienen.
Finalmente, ponga toda la secuencia de comandos que
ha ido realizando en un fichero llamado
creacion.sh
con un editor de textos y
guárdelo. Debe poner una línea por cada uno de los comandos y en el
mismo orden que establecía este ejercicio. Además, añada en la
primera línea del fichero el siguiente texto:
#!/bin/bash
Asigne permisos de ejecución al nuevo fichero creado. A este nuevo fichero que contiene una secuencia de comandos se le denomina script. Si ejecuta este fichero desde un terminal de comandos con ./creacion.sh, entonces se ejecutarán todos los comandos de una sóla vez en la secuencia establecida. Así, si en un futuro se quiere ejecutar la misma secuencia de comandos tan sólo tendrás que ejecutar el script de esa manera, en lugar de teclear todo comando a comando.
Generación de información.En esta tarea deberá realizar una serie de comandos en Linux para la generación de información sobre la estructura de directorios creada, el contenido de los ficheros y otra información del sistema.
En primer lugar ejecuta el comando date para que se muestre la fecha actual en el sistema.
En segundo lugar, muestra el directorio actual en que te encuentras, que en general puede ser cualquiera. Para ello, utiliza el comando pwd.
Muestra todos los procesos que se están ejecutando en el sistema Linux en ese momento. Para ello, utiliza el comando ps.
Utilizando los comandos cd y ls, muestra la información de los ficheros y subdirectorios que hay debajo de cada una de las 8 carpetas del grupo de trabajo. La información debe mostrar al menos la fecha de creación de los ficheros o/y directorios, su tamaño, así como sus permisos.
Utilizando el comando grep, muestre todos los ficheros que contienen el string “de”, que estén debajo de algún directorio de la estructura del grupo de trabajo.
Finalmente, ponga toda la secuencia de comandos que
ha ido realizando para la generación de información en un fichero
llamado informacion.sh
con un editor de textos
y guárdelo. Debe poner una línea por cada uno de los comandos y en
el mismo orden que establecía este ejercicio. Además, añada en la
primera línea del fichero el siguiente texto:
#!/bin/bash
Asigne permisos de ejecución al nuevo fichero creado.
Borrado de carpetas y ficheros. En esta tarea deberá realizar una serie de comandos en Linux para el borrado parcial de la estructura de directorios, así como de algunos ficheros.
Borra completamente todos los ficheros y
directorios que hay por debajo del directorio
Proyectos
, incluyendo el mismo directorio de
Proyectos
. Debes hacerlo únicamente utilizando
el comando rm.
Seguidamente borra el fichero que hay en la carpeta
Otros
utilizando el comando
rm.
Seguidamente borra el directorio
Otros
utilizando el comando
rmdir. Nota que esto es posible porque ya no hay
ningún fichero debajo del directorio
Otros
.
Finalmente, ponga toda la secuencia de comandos que
ha ido realizando para la generación de información en un fichero
llamado borrado.sh
con un editor de textos y
guárdelo. Debe poner una línea por cada uno de los comandos y en el
mismo orden que establecía este ejercicio. Además, añada en la
primera línea del fichero el siguiente texto:
#!/bin/bash
Asigne permisos de ejecución al nuevo fichero creado.
Se recibe en SAUCEM S.L. un fichero con los logs que se han recogido en las antenas de telefonía (que en adelante llamaremos “celdas”) de los alrededores de Leganés durante una semana. Su contenido es texto plano y en él están registrados todos los eventos de los teléfonos de cualquier operador a los que se les da cobertura. Cada línea del fichero contiene un evento, y la información se codifica con el siguiente formato:
Tienes que procesar este fichero con comandos Linux para obtener información detallada.
Descomprime el fichero (lee sobre el comando gunzip).
Visualiza su contenido por pantalla (lee sobre los comandos cat y more).
Cuenta el número de líneas (y por tanto de eventos) que hay en el fichero (lee sobre el comando wc).
Selecciona del fichero sólo aquellas líneas que tengan una palabra dada (lee sobre el comando grep).
Se quiere generar un informe para cada celda que contenga sólo los eventos que se han producido en ella. Crea tantas carpetas como celdas para almacenar estos informes.
Si se añade al final de un comando el símbolo “>” seguido del nombre de un fichero, los datos que produce se almacenan en ese fichero en lugar de mostrarse por pantalla. El fichero se crea de nuevo. Si en lugar de “>” se añade “>>” y el nombre de un fichero, el contenido del comando se añade al final del fichero dado.
Utilizando esta funcionalidad y los comandos vistos hasta ahora, crea en cada subcarpeta un fichero que contenga solo los eventos que pertenecen a esa celda. Ejecuta todos los comandos desde la carpeta que contiene las subcarpetas en las que dejar los informes.
En cada subcarpeta crea un fichero
resumen.txt
que contenga la siguiente información
en líneas separadas: número de eventos en la celda, número de eventos
para cada empresa, y número de eventos con operaciones de SMSs.
Ejecuta la secuencia de comandos para la primera de las carpetas. Copia estos comandos en un fichero de texto utilizando el editor. Este fichero puede ahora ejecutarse múltiples veces por el intérprete mediante el comando:
$ bash miscomandos
Utilízalo para generar los ficheros
resumen.txt
en las carpetas restantes.
Edita de nuevo el fichero de comandos. Añade la siguiente línea al comienzo del todo:
#!/bin/bash
Utiliza el comando chmod para darle permiso de ejecución a su propietario.
Prueba a ejecutar el fichero como un programa mediante el comando:
$ ./miscomandos
A este tipo de ficheros que contienen comandos para el intérprete se les conoce como “scripts”.
Prueba a ejecutar el script sin el prefijo “./” ¿Por qué crees que es necesario ponerlo?