En aquest projecte, crearàs un script en Bash que recollirà i mostrarà informació detallada sobre el sistema. Aquest tipus d'script és molt útil per a administradors de sistemes i desenvolupadors que necessiten obtenir ràpidament informació sobre l'estat i la configuració del sistema.

Objectius del Projecte

  • Aprendre a utilitzar comandes de Bash per recollir informació del sistema.
  • Practicar la manipulació de cadenes i la sortida de dades.
  • Crear un script que sigui fàcil de llegir i mantenir.

Requisits del Projecte

L'script ha de proporcionar la següent informació:

  1. Nom del sistema operatiu i versió.
  2. Nom de l'host.
  3. Temps d'activitat del sistema.
  4. Memòria total i memòria lliure.
  5. Espai en disc utilitzat i disponible.
  6. Informació sobre la CPU.
  7. Adreça IP de la màquina.

Estructura de l'Script

L'script es dividirà en seccions, cadascuna recollint i mostrant una part específica de la informació del sistema.

  1. Nom del Sistema Operatiu i Versió

Utilitzarem la comanda uname i el fitxer /etc/os-release per obtenir aquesta informació.

#!/bin/bash

# Nom del Sistema Operatiu i Versió
os_name=$(uname -s)
os_version=$(grep 'VERSION=' /etc/os-release | cut -d '"' -f 2)
echo "Sistema Operatiu: $os_name $os_version"

  1. Nom de l'Host

La comanda hostname ens proporcionarà el nom de l'host.

# Nom de l'Host
host_name=$(hostname)
echo "Nom de l'Host: $host_name"

  1. Temps d'Activitat del Sistema

La comanda uptime ens donarà el temps d'activitat del sistema.

# Temps d'Activitat del Sistema
uptime_info=$(uptime -p)
echo "Temps d'Activitat: $uptime_info"

  1. Memòria Total i Memòria Lliure

Utilitzarem la comanda free per obtenir informació sobre la memòria.

# Memòria Total i Memòria Lliure
mem_total=$(free -h | grep Mem | awk '{print $2}')
mem_free=$(free -h | grep Mem | awk '{print $4}')
echo "Memòria Total: $mem_total"
echo "Memòria Lliure: $mem_free"

  1. Espai en Disc Utilitzat i Disponible

La comanda df ens proporcionarà informació sobre l'espai en disc.

# Espai en Disc Utilitzat i Disponible
disk_usage=$(df -h / | grep / | awk '{print $3}')
disk_available=$(df -h / | grep / | awk '{print $4}')
echo "Espai en Disc Utilitzat: $disk_usage"
echo "Espai en Disc Disponible: $disk_available"

  1. Informació sobre la CPU

Utilitzarem la comanda lscpu per obtenir informació sobre la CPU.

# Informació sobre la CPU
cpu_info=$(lscpu | grep "Model name" | cut -d ':' -f 2 | xargs)
echo "Informació de la CPU: $cpu_info"

  1. Adreça IP de la Màquina

La comanda hostname -I ens donarà l'adreça IP de la màquina.

# Adreça IP de la Màquina
ip_address=$(hostname -I | awk '{print $1}')
echo "Adreça IP: $ip_address"

Script Complet

Aquí tens l'script complet amb totes les seccions integrades:

#!/bin/bash

# Nom del Sistema Operatiu i Versió
os_name=$(uname -s)
os_version=$(grep 'VERSION=' /etc/os-release | cut -d '"' -f 2)
echo "Sistema Operatiu: $os_name $os_version"

# Nom de l'Host
host_name=$(hostname)
echo "Nom de l'Host: $host_name"

# Temps d'Activitat del Sistema
uptime_info=$(uptime -p)
echo "Temps d'Activitat: $uptime_info"

# Memòria Total i Memòria Lliure
mem_total=$(free -h | grep Mem | awk '{print $2}')
mem_free=$(free -h | grep Mem | awk '{print $4}')
echo "Memòria Total: $mem_total"
echo "Memòria Lliure: $mem_free"

# Espai en Disc Utilitzat i Disponible
disk_usage=$(df -h / | grep / | awk '{print $3}')
disk_available=$(df -h / | grep / | awk '{print $4}')
echo "Espai en Disc Utilitzat: $disk_usage"
echo "Espai en Disc Disponible: $disk_available"

# Informació sobre la CPU
cpu_info=$(lscpu | grep "Model name" | cut -d ':' -f 2 | xargs)
echo "Informació de la CPU: $cpu_info"

# Adreça IP de la Màquina
ip_address=$(hostname -I | awk '{print $1}')
echo "Adreça IP: $ip_address"

Exercicis Pràctics

  1. Modifica l'script per incloure la informació sobre la velocitat de la CPU.
  2. Afegeix una secció que mostri el nombre de processos en execució.
  3. Crea una funció dins l'script que imprimeixi la informació en un format més llegible, com per exemple, amb línies de separació entre cada secció.

Solucions als Exercicis

  1. Informació sobre la Velocitat de la CPU

# Velocitat de la CPU
cpu_speed=$(lscpu | grep "CPU MHz" | cut -d ':' -f 2 | xargs)
echo "Velocitat de la CPU: $cpu_speed MHz"

  1. Nombre de Processos en Execució

# Nombre de Processos en Execució
process_count=$(ps aux | wc -l)
echo "Nombre de Processos en Execució: $process_count"

  1. Funció per Imprimir Informació

print_info() {
    echo "=============================="
    echo "$1"
    echo "=============================="
}

# Utilitza la funció per imprimir cada secció
print_info "Sistema Operatiu: $os_name $os_version"
print_info "Nom de l'Host: $host_name"
print_info "Temps d'Activitat: $uptime_info"
print_info "Memòria Total: $mem_total"
print_info "Memòria Lliure: $mem_free"
print_info "Espai en Disc Utilitzat: $disk_usage"
print_info "Espai en Disc Disponible: $disk_available"
print_info "Informació de la CPU: $cpu_info"
print_info "Velocitat de la CPU: $cpu_speed MHz"
print_info "Nombre de Processos en Execució: $process_count"
print_info "Adreça IP: $ip_address"

Conclusió

Aquest projecte t'ha permès crear un script en Bash que recull i mostra informació important sobre el sistema. Has après a utilitzar diverses comandes de Bash per obtenir dades del sistema, a manipular cadenes i a presentar la informació de manera clara i llegible. Aquest tipus d'script és una eina valuosa per a qualsevol administrador de sistemes o desenvolupador que necessiti monitoritzar l'estat del sistema de manera eficient.

© Copyright 2024. Tots els drets reservats