Recuperación de información del servidor Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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-query e ip, 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.

Crea el script getinfo.sh

En este paso, crearás el script getinfo.sh en el directorio /home/labex/project.

  1. Abre un editor de texto y crea un nuevo archivo llamado getinfo.sh en el directorio /home/labex/project.

  2. Agrega la siguiente línea de shebang al principio del archivo:

    #!/bin/zsh

    Esta línea especifica que el script debe ejecutarse utilizando el shell zsh.

  3. 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.

  4. 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 grep para contar el número de entradas de procesador en el archivo /proc/cpuinfo, que representa el número de CPU.

  3. 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 free con la opción -g para recuperar el tamaño total de la memoria en gigabytes. La segunda función utiliza el comando free con la opción -m para recuperar el tamaño de memoria disponible en megabytes.

  3. 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 df con la opción -h para recuperar el tamaño total del sistema de archivos montado en el directorio raíz (/), y luego extrae el valor del tamaño utilizando awk.

  3. Guarda los cambios en el script.

Recuperar información de los bits del sistema

En este paso, agregaras una función al script getinfo.sh para recuperar la información de los bits del sistema.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 getconf para recuperar el número de bits utilizado por el sistema.

  3. Guarda los cambios en el script.

Recuperar información de los procesos

En este paso, agregaras una función al script getinfo.sh para recuperar el número de procesos en ejecución actualmente.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 ps para listar todos los procesos en ejecución y luego cuenta el número de líneas utilizando el comando wc.

  3. 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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-query para listar todos los paquetes de software instalados y luego cuenta el número de líneas utilizando el comando wc.

  3. 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 ip para recuperar la dirección IP de la interfaz de red eth0 y luego extrae la dirección IP utilizando awk y sed.

  3. Guarda los cambios en el script.

Mostrar 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.

  1. Abre el script getinfo.sh en un editor de texto.

  2. 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 echo para imprimir la información del sistema en el formato requerido.

  3. 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
✨ Revisar Solución y Practicar

Resumen

Felicitaciones ¡has completado este proyecto! Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.