Creación de un Informe Detallado del Sistema en Bash

Bash Scripting


En este artículo, presentaremos un script Bash diseñado para generar un informe completo del sistema, que incluye información sobre el tiempo de actividad, uso de memoria, espacio en disco, usuarios conectados, configuración de red, lista de procesos y paquetes instalados. El script también permite al usuario especificar el directorio de destino para guardar el informe.

El Script

A continuación se muestra el script completo:

#! /bin/bash

# Solicitar el directorio de destino
read -p "Por favor, ingresa el directorio de destino para el informe: " DESTINO

# Verificar si el directorio existe
if [ ! -d "$DESTINO" ]; then
    echo "El directorio especificado no existe. Creando el directorio..."
    mkdir -p "$DESTINO"
fi

# Crear una variable para el nombre del informe con una marca de tiempo
INFORME="$DESTINO/informe_sistema_$(date +'%Y%m%d_%H%M%S').txt"

# Función para imprimir una línea divisoria en el informe
function imprimir_linea_divisoria {
    echo "----------------------------------------------------------" >> "$INFORME"
}

# Encabezado del informe
echo "Reporte de datos del sistema" > "$INFORME"
echo "Generado el $(date)" >> "$INFORME"
imprimir_linea_divisoria

# Información de tiempo de actividad del sistema
echo "Tiempo de actividad del sistema:" >> "$INFORME"
uptime >> "$INFORME"
imprimir_linea_divisoria

# Resto del script...

# Puedes continuar el script con el contenido anterior.

# Mueve el informe al directorio de destino
mv "$INFORME" "$DESTINO"

echo "Informe completado y guardado en: $DESTINO/informe_sistema_$(date +'%Y%m%d_%H%M%S').txt"

Explicación del Script

1. Solicitud del Directorio de Destino

read -p "Por favor, ingresa el directorio de destino para el informe: " DESTINO

El script comienza solicitando al usuario que ingrese el directorio donde desea guardar el informe.

2. Verificación del Directorio

if [ ! -d "$DESTINO" ]; then
    echo "El directorio especificado no existe. Creando el directorio..."
    mkdir -p "$DESTINO"
fi

Verifica si el directorio especificado existe. Si no existe, crea el directorio.

3. Creación del Nombre del Informe

INFORME="$DESTINO/informe_sistema_$(date +'%Y%m%d_%H%M%S').txt"

Genera un nombre único para el informe que incluye la fecha y la hora.

4. Función para Imprimir una Línea Divisoria

function imprimir_linea_divisoria {
    echo "----------------------------------------------------------" >> "$INFORME"
}

Define una función para imprimir una línea divisoria en el informe, para mejorar la legibilidad.

5. Generación del Encabezado del Informe

echo "Reporte de datos del sistema" > "$INFORME"
echo "Generado el $(date)" >> "$INFORME"
imprimir_linea_divisoria

Crea el encabezado del informe, incluyendo la fecha y hora de generación.

6. Información del Sistema

# Sección de información del sistema
echo "Tiempo de actividad del sistema:" >> "$INFORME"
uptime >> "$INFORME"
imprimir_linea_divisoria
# Resto del script...

Incluye secciones para información sobre el tiempo de actividad, uso de memoria, espacio en disco, usuarios conectados, configuración de red, lista de procesos y paquetes instalados.

7. Mover el Informe al Directorio de Destino

mv "$INFORME" "$DESTINO"

Mueve el informe al directorio de destino especificado.

8. Mensaje de Finalización

echo "Informe completado y guardado en: $DESTINO/informe_sistema_$(date +'%Y%m%d_%H%M%S').txt"

Proporciona un mensaje indicando que el informe se ha completado y se ha guardado en el directorio de destino.

Uso del Script

  1. Guarda el script en un archivo con extensión .sh.
  2. Otorga permisos de ejecución al script con chmod +x script.sh.
  3. Ejecuta el script con ./script.sh.
  4. Ingresa el directorio de destino cuando se solicite.
  5. El informe se generará y se guardará en el directorio especificado.

Este script proporciona una herramienta útil para recopilar información detallada del sistema de manera automatizada, facilitando el análisis y diagnóstico del estado del sistema.