Introducción
En este proyecto, aprenderás a recuperar y mostrar información del sistema en un servidor Linux. El script getinfo.sh que crearás se puede utilizar para recopilar rápidamente detalles importantes sobre el hardware, el software y la configuración de red del servidor.
👀 Vista previa
$ sh getinfo.sh
## Ejemplo
número de cpu: 8
memoria total: 30 G
memoria libre: 10867 M
tamaño del disco: 20G
bits del sistema: 64
proceso: 40
número de software: 1389
ip: 1.32.X.X
🎯 Tareas
En este proyecto, aprenderás:
- Cómo recuperar el número de CPU, la memoria total, la memoria disponible, el tamaño del disco, los bits del sistema, el número de procesos en ejecución, el número de paquetes de software instalados y la dirección IP del servidor.
- Cómo utilizar varios comandos y herramientas de Linux, como
grep,free,df,getconf,ps,dpkg-queryeip, para recopilar información del sistema. - Cómo escribir un script de zsh que combine estos comandos para proporcionar una panorámica general del estado del servidor.
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender cómo utilizar la programación de shell para automatizar la recopilación de información del sistema.
- Conocer mejor los comandos de Linux comúnmente utilizados y sus aplicaciones.
- Crear un script reusable que se puede ejecutar para recuperar y mostrar rápidamente detalles importantes del servidor.
- Aplicar tus nuevos conocimientos para monitorear y solucionar problemas de sistemas Linux de manera más efectiva.
Crear el script getinfo.sh
En este paso, crearás el script getinfo.sh en el directorio /home/labex/project.
Abre un editor de texto y crea un nuevo archivo llamado
getinfo.shen el directorio/home/labex/project.Agrega la siguiente línea de shebang al principio del archivo:
#!/bin/zshEsta línea especifica que el script debe ejecutarse utilizando el shell zsh.
Agrega los siguientes comentarios al script:
## getinfo.sh - Script de información del sistema Linux ## Este script recupera la información de CPU, memoria, disco y otras de un servidor Linux.Estos comentarios proporcionan una breve descripción del propósito del script.
Guarda el archivo.
Recuperar información de la CPU
En este paso, agregaras una función al script getinfo.sh para recuperar el número de CPU.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar información de la CPU cpu_num=$(grep -c '^processor' /proc/cpuinfo)Esta función utiliza el comando
greppara contar el número de entradas de procesador en el archivo/proc/cpuinfo, que representa el número de CPU.Guarda los cambios en el script.
Recuperar información de la memoria
En este paso, agregaras funciones al script getinfo.sh para recuperar el tamaño total de la memoria y el tamaño de memoria disponible.
Abre el script
getinfo.shen un editor de texto.Agrega las siguientes funciones al script:
## Función: Recuperar el tamaño total de la memoria (en GB) memory_total=$(free -g | awk '/^Mem:/ {print $2}') ## Función: Recuperar el tamaño de memoria disponible (en MB) memory_free=$(free -m | awk '/^Mem:/ {print $4}')La primera función utiliza el comando
freecon la opción-gpara recuperar el tamaño total de la memoria en gigabytes. La segunda función utiliza el comandofreecon la opción-mpara recuperar el tamaño de memoria disponible en megabytes.Guarda los cambios en el script.
Recuperar información del disco
En este paso, agregaras una función al script getinfo.sh para recuperar el tamaño total del sistema de archivos montado en el directorio raíz.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar el tamaño total del disco del sistema de archivos raíz (en GB) disk_size=$(df -h / | awk '/\// {print $2}')Esta función utiliza el comando
dfcon la opción-hpara recuperar el tamaño total del sistema de archivos montado en el directorio raíz (/), y luego extrae el valor del tamaño utilizandoawk.Guarda los cambios en el script.
Recuperar información de la arquitectura del sistema
En este paso, agregaras una función al script getinfo.sh para recuperar la información de los bits del sistema.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar los bits del sistema system_bit=$(getconf LONG_BIT)Esta función utiliza el comando
getconfpara recuperar el número de bits utilizado por el sistema.Guarda los cambios en el script.
Recuperar información del proceso
En este paso, agregaras una función al script getinfo.sh para recuperar el número de procesos en ejecución actualmente.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar el número de procesos en ejecución actualmente process=$(ps -ef | wc -l)Esta función utiliza el comando
pspara listar todos los procesos en ejecución y luego cuenta el número de líneas utilizando el comandowc.Guarda los cambios en el script.
Recuperar información del software
En este paso, agregaras una función al script getinfo.sh para recuperar el número de paquetes de software instalados.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar el número de paquetes de software instalados software_num=$(dpkg-query -f '${binary:Package}\n' -W | wc -l)Esta función utiliza el comando
dpkg-querypara listar todos los paquetes de software instalados y luego cuenta el número de líneas utilizando el comandowc.Guarda los cambios en el script.
Recuperar información de la dirección IP
En este paso, agregaras una función al script getinfo.sh para recuperar la dirección IP de la interfaz de red eth0.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente función al script:
## Función: Recuperar la dirección IP de eth0 ip=$(ip addr show eth0 | awk '/inet / {print $2}' | sed 's|/.*||')Esta función utiliza el comando
ippara recuperar la dirección IP de la interfaz de red eth0 y luego extrae la dirección IP utilizandoawkysed.Guarda los cambios en el script.
Salida de la información del sistema
En este último paso, agregaras la sección de salida al script getinfo.sh para mostrar la información del sistema.
Abre el script
getinfo.shen un editor de texto.Agrega la siguiente sección de salida al script:
## Mostrar información echo "número de cpu: $cpu_num" echo "memoria total: $memory_total G" echo "memoria libre: $memory_free M" echo "tamaño del disco: $disk_size" echo "bits del sistema: $system_bit" echo "proceso: $((process - 1))" echo "número de software: $software_num" echo "ip: $ip"Esta sección utiliza el comando
echopara imprimir la información del sistema en el formato requerido.Guarda los cambios en el script.
Felicitaciones ¡ahora has completado el script getinfo.sh! Puedes ejecutar el script ejecutando el siguiente comando en la terminal:
sh getinfo.sh
El script mostrará la información del sistema como se especifica en los requisitos del proyecto.
## Ejemplo
número de cpu: 8
memoria total: 30 G
memoria libre: 10867 M
tamaño del disco: 20G
bits del sistema: 64
proceso: 40
número de software: 1389
ip: 1.32.X.X
Resumen
Felicitaciones ¡has completado este proyecto! Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



