IES Miguel Romero Esteo - Departamento de Informática - Linux/Unix
Bash y programación en Bash / Práctica 8
Enunciado:
Comandos útiles: df, who.
Escriba un script audit.sh:
Escriba una función users_connect que mostrará la lista de los usuarios conectados actualmente.
Escriba una función disk_space que mostrará el espacio en disco disponible.
El programa principal mostrará el siguiente menú:
- 0 - Fin - 1 - Mostrar la lista de usuarios conectados - 2 - Mostrar el espacio en disco Su opción:
Introducir la opción del usuario y llamar a la función adecuada.
Comandos filtro útiles: awk, tr -d. Otros comandos útiles: df, find.
Escriba un script explore_sa.sh:
Programa principal:
El programa principal mostrará el menú siguiente:
0 - Fin 1 - Eliminar los archivos de tamaño 0 de mi directorio principal 2 - Controlar el espacio de disco del SA raíz Su opción:
Introduzca la opción del usuario.
La opción 0 provocará la finalización del script.
La opción 1 llamará a la función limpieza.
La opción 2 causará la llamada a la función sin_espacio_d.
En función del valor retornado por la función, mostrar el mensaje adecuado.
Escriba la función limpieza: busque, a partir del directorio de inicio del usuario, todos los archivos que tengan tamaño 0 con objeto de eliminarlos (despuésde solicitar confirmación para cada archivo).
Escriba la función sin_espacio_d: esta función verifica la utilización del sistema de archivos raíz y retorna verdadero si la tasa es superior al 80% y falso en caso contrario.
Ejemplos de ejecución
$ explore_sa.sh 0 - Fin 1 - Eliminar los archivos de tamaño 0 de mi directorio principal 2 - Controlar el espacio de disco del SA raíz Su opción: 1 rm: eliminar fichero regular vacio `/home/cristina/.gconf/%gconf.xml’? n etc. $ explore_sa.sh 0 - Fin 1 - Eliminar los archivos de tamaño 0 de mi directorio principal 2 - Controlar el espacio de disco del SA raíz Su opción: 2 Tasa de utilización del sistema de archivos raíz: NORMAL
Escriba un script calcul.sh, que contendrá:
Una función esNum que recibe un valor como argumento y que retorna verdadero si el valor es un número entero y falso en el caso contrario.Si define variables, estas deberán ser locales.
Una función suma que recibirá un número cualquiera de parámetros. La función debe verificar, empleando la función esNum, que los argumentos recibidos son números y mostrar la suma de los argumentos. Si uno de los argumentos es incorrecto, este será ignorado. Si emplea variables, estas deberán ser locales.
Una función producto que recibe un número cualquiera de parámetros. La función debe verificar, empleando la función esNum, que los argumentos recibidos son números y mostrar el producto de los argumentos. Si uno de los argumentos es incorrecto, este será ignorado. Si emplea variables, estas deberán ser locales.
El programa principal:
El script calcul.sh recibirá como argumentos la operación que se ha de realizar, al igual que una serie de números.
$ calcul.sh producto 3 5 10 150 $ calcul.sh suma 3 5 10 25
Llamar a la función correspondiente a la operación solicitada y pasar los valores recibidos por el script. Mostrar por pantalla el resultado devuelto por la función.
Comando útil: printf.
Sea el siguiente archivo de datos:
$ cat alumnos.txt Nombre|Clase|Promedio Luis|6to|3 Carlos|6to|14 Clarisa|6to|16 Jorge|6to|18 Pedro|6to|8 Damian|5to|10 Daniel|5to|11 Pablo|5to|7 Victor|5to|14
Escriba un script stats.sh que muestre por pantalla, con formato, las tres columnas del archivo según sigue:
$ stats.sh Nombre Clase Promedio Luis 6to 3 Carlos 6to 14 Clarisa 6to 16 Jorge 6to 18 Pedro 6to 8 Damian 5to 10 Daniel 5to 11 Pablo 5to 7 Victor 5to 14
Comando útil: printf.
Sea el siguiente archivo de datos:
$ cat alumnos.txt Nombre|Clase|Promedio Luis|6to|3 Carlos|6to|14 Clarisa|6to|16 Jorge|6to|18 Pedro|6to|8 Damian|5to|10 Daniel|5to|11 Pablo|5to|7 Victor|5to|14
Escriba el script stats_select.sh que:
Permita mostrar los registros de cada Clase.
Permita el cálculo del promedio de cada Clase.
El script mostrará un menú escrito con la estructura select.
Ejemplo de ejecución
$ stats_select.sh 1) Extracto por clase 2) Promedio por clase 3) Fin Su opción: 1 Clase ? 6to Luis 6to 3 Carlos 6to 14 Clarisa 6to 16 Jorge 6to 18 Pedro 6to 8
.................
Su opción: 2 Clase ? 5to Nota : 10 Nota : 11 Nota : 7 Nota : 14 Promedio de la clase de 5to: 10
.................
Sea el archivo datos.txt:
$ cat datos.txt Juan Juan|46290|Valencia Olivia Perez|24200|León Carlos Izaguirre|24200|León Alejandro Arevalo|24100|León Jorge Olvido|26350|La Rioja Jose Martinez|26350|La Rioja
Escriba un script tabAsoc.sh que cuente el número de habitantes por ciudad.
Ejemplo de resultado
$ tabAsoc.sh Valencia => 1 La Rioja => 2 León => 3