Un administrador de sistemas, todos los días, se encuentra con situaciones que requieren la recopilación de información para llevar a cabo su trabajo.
Vamos a ver un programa que aúna algúnas utilidades muy prácticas. Ejecutando este script, podrémos:
- Ver los procesos del sistema.
- Ver los procesos del usuario.
- Ver el contenido de un directorio.
- Recorrer, recursivamente, un directorio para buscar ficheros, por ejemplo.
Script Herramientas.sh
Copia y pega el siguiente código donde lo vayas a ejecutar.
#!/bin/bash # Este programa ha sido creado por Francisco Javier Izquierdo Hidalgo. # Este programa es software libre; puedes redistribuirlo y / o # modificarlo bajo los términos de la Licencia Pública General de GNU # publicado por la Free Software Foundation; ya sea la versión 2 # de la Licencia, o (a su elección) cualquier versión posterior. # Este programa se distribuye con la esperanza de que sea útil, # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de # COMERCIABILIDAD o APTITUD PARA UN PROPÓSITO EN PARTICULAR. Ver el # GNU General Public License para más detalles. # Define variables LSB=/usr/bin/lsb_release # Indicacion de pausa de visualizacion function pause(){ local message="$@" [ -z $message ] && message="Presiona [Enter] para continuar..." read -p "$message" readEnterKey } # Mostrar un menu en pantalla function menu(){ date echo "-----------------------------" echo " Menu Principal " echo "-----------------------------" echo "1.Procesos del sistema" echo "2.Procesos del usuario" echo "3.Contenido del directorio" echo "4.Buscar un fichero" echo "5.Salir" } # Proposito - Monstrar mensaje de cabecerae_header(){ function write_header(){ local h="$@" echo "---------------------------------------------------------------" echo " ${h}" echo "---------------------------------------------------------------" } # Proposito - Monstrar procesos del sistema function ProcSys(){ write_header " Procesos activos del sistema Daemons" ps -x | more pause } # Proposito - Monstrar procesos del ususario function ProcUsu(){ write_header " Procesos activos del usuario Daemons" ps -u | more pause } # Proposito - Monstrar contenido de un directorio function avanzar(){ write_header " Contenido del directorio..." for i in $(ls -l | tr -s " " " " | cut -f9 -d " " ) do if [ -f $i ] then echo fichero $i elif [ -d $i ] then cd $i echo "Entrando en carpeta $i" echo ruta pwd avanzar cd .. echo "Saliendo de carpeta" fi done pause } # Proposito - Buscar un fichero function buscar(){ write_header " Buscando un fichero......" for val in `ls` do echo "listamos a continuacion el archivo: $val<pulse intro> \c" read s done pause } # Proposito - Obtener entrada por teclado y elegir opción read_input(){ local c read -p "Elige una opción [ 1 - 5 ] " c case $c in 1) ProcSys ;; 2) ProcUsu ;; 3) avanzar ;; 4) buscar ;; 5) echo "Hemos terminado." ; echo " Bye! $USER"; exit 0 ;; *) echo "Seleccione una sola opción entre 1 to 5." pause esac } # ignorar CTRL+C, CTRL+Z y salida simple usando trap trap '' SIGINT SIGQUIT SIGTSTP # programa principal while true do clear menu # mostrar memu read_input # esperar la entrada del usuario done
Tenemos que darle premisos de ejecución,
chmod +x herramientas.sh
Y ya lo podemos ejecutar con,
./herramientas.sh
Nos aparecerá en la terminal, el siguiente menú:
Eligiendo cada una de las opciones obtendremos la información requerida.
Si le pedimos los procesos del sistema, obtendremos una salida parecida a esta,
Para ver los procesos activos del usuario, elegimos la opción 2 y veremos….
Con la opción 3, la salida será el contenido del directorio actual.
Y con la opción 4 nos permite, tras ver el contenido del directorio, ir avanzando por subdirectorios y ver sus contenidos.
Espero que te sea de utilidad.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.
Parece sencillo visto así…..si necesito ayuda ya sé donde acudir. Gracias
Por supuesto, si puedo te ayudaré. Solo tienes que solicitarlo.
Muy bien, ahora poco a poco añadiendo contenidos.
Cuando tenga una pega ya sé a quién preguntar.
Gracias Alfonso. Estaré encantado de ayudarte, si puedo…