infos_systeme.sh

Note de lecture générée automatiquement

Le vrai fichier est scripts/linux/infos_systeme.sh (Obsidian n’affiche pas les scripts eux-mêmes). Ne modifie pas cette note : modifie le script, puis relance python3 generer_vues_obsidian.py dans le dossier scripts.

Code

#!/usr/bin/env bash
# =============================================================================
# infos_systeme.sh — Fiche d'identité rapide d'une machine Linux
#   (utile en début d'intervention, ou pour remplir un compte rendu de TP)
# Usage : ./infos_systeme.sh            (aucun droit root nécessaire)
# =============================================================================
 
titre() { printf '\n\033[1;36m== %s ==\033[0m\n' "$1"; }
 
titre "Système"
echo "Nom d'hôte    : $(hostname)"
if os-release; then
  . /etc/os-release
  echo "Distribution  : ${PRETTY_NAME:-inconnue}"
fi
echo "Noyau         : $(uname -r)"
echo "Architecture  : $(uname -m)"
echo "Allumé depuis : $(uptime -p 2>/dev/null || uptime)"
 
titre "Processeur et mémoire"
echo "CPU           : $(grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | sed 's/^ //')"
echo "Cœurs         : $(nproc)"
free -h | sed 's/^/  /'
 
titre "Disques"
df -h -x tmpfs -x devtmpfs -x squashfs -x overlay 2>/dev/null | sed 's/^/  /'
 
titre "Réseau"
ip -br address | sed 's/^/  /'
echo "  Passerelle : $(ip route show default | awk '{print $3; exit}')"
if command -v resolvectl > /dev/null; then
  echo "  DNS        : $(resolvectl dns 2>/dev/null | awk -F': ' 'NF>1 && $2!="" {print $2}' | tr '\n' ' ')"
else
  echo "  DNS        : $(awk '/^nameserver/ {print $2}' /etc/resolv.conf | tr '\n' ' ')"
fi
 
titre "Ports en écoute"
ss -tuln 2>/dev/null | sed 's/^/  /'
 
titre "Services en échec"
systemctl --failed --no-legend 2>/dev/null | sed 's/^/  /' || echo "  (systemd absent)"
 
titre "5 processus les plus gourmands en mémoire"
ps -eo pid,user,%mem,%cpu,comm --sort=-%mem | head -n 6 | sed 's/^/  /'