Linux informations système sous forme de table

Le 6 septembre 2022
devops

Script Bash qui récupère les informations système et les affiche sous forme de table :

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

# Récupération des informations système
os_name=$(cat /etc/*release | grep PRETTY_NAME | cut -d '"' -f 2)
ram=$(free -m | grep Mem | awk '{print $2}')
processor=$(grep -c processor /proc/cpuinfo)
fs=$(df -h | awk '{print $1}' | grep -v Filesystem | wc -l)
disks=$(lsblk -d -o name | grep -v name | wc -l)
interfaces=$(ip link show | grep -c UP)

# Affichage des informations sous forme de table
echo "+-----------------------------+"
echo "| Informations système        |"
echo "+-----------------------------+"
echo "| OS name         | $os_name"
echo "| RAM             | $ram MB"
echo "| Processor       | $processor"
echo "| Filesystems     | $fs"
echo "| Disks           | $disks"
echo "| Interfaces      | $interfaces"
echo "+-----------------------------+"

Le script utilise plusieurs commandes pour récupérer les informations système et les stocke dans des variables :

  • os_name=$(cat /etc/*release | grep PRETTY_NAME | cut -d '"' -f 2) récupère le nom de l’OS en lisant le contenu du fichier /etc/*release, en filtrant les lignes contenant PRETTY_NAME avec grep et en extrayant le nom de l’OS avec cut.
  • ram=$(free -m | grep Mem | awk '{print $2}') récupère la quantité de RAM disponible en utilisant la commande free, en filtrant la ligne contenant Mem avec grep et en récupérant la quantité de RAM disponible en Mo avec awk.
  • processor=$(grep -c processor /proc/cpuinfo) récupère le nombre de processeurs disponibles en lisant le fichier /proc/cpuinfo et en comptant le nombre de lignes contenant processor avec grep.
  • fs=$(df -h | awk '{print $1}' | grep -v Filesystem | wc -l) récupère le nombre de filesystems montés en utilisant la commande df, en récupérant la liste des filesystems montés avec awk et en comptant le nombre de lignes avec wc.
  • disks=$(lsblk -d -o name | grep -v name | wc -l) récupère le nombre de disques durs physiques en utilisant la commande lsblk, en récupérant la liste des noms de disques durs physiques avec lsblk -d -o name et en comptant le nombre de lignes avec wc.
  • interfaces=$(ip link show | grep -c UP) récupère le nombre d’interfaces réseau disponibles en utilisant la commande ip link, en filtrant les interfaces actives avec grep et en comptant le nombre de lignes.

Ensuite, le script affiche les informations sous forme de table en utilisant la commande echo :

  • La première ligne (+-----------------------------+) affiche le bord supérieur de la table.
  • Les lignes suivantes affichent les différentes informations récupérées, avec leur nom à gauche et leur valeur à droite. Le symbole | est utilisé pour séparer les différentes colonnes.
  • La dernière ligne (+-----------------------------+) affiche le bord inférieur de la table.

En exécutant ce script, vous obtiendrez une table affichant les informations système sous une forme plus claire et lisible que la liste brute des variables.