Sysinfo System Report.
Utilisateur, machine, IP publique et locale, ports en écoute, hosts SSH connus et containers actifs.
Cinq commandes en une
Un seul fichier Python. Il tourne sur toute machine disposant de python3 et
remplace les cinq commandes ci-dessous.
| Besoin | Commande habituelle | sysinfo |
|---|---|---|
| Utilisateur, machine, OS | whoami · hostname · uname -a | -a |
| IP publique et locale | curl ifconfig.me · ip addr | -l --local-ip |
| Ports en écoute | ss -tulpn | --ports |
| Hosts SSH connus | cat ~/.ssh/config | --ssh |
| Containers et networks | docker ps · docker network ls | --docker |
sysinfo.py, à copier où on veut.-t), plus un mode interactif à onglets (-i).--update vérifie le SHA256 et remplace le binaire de façon atomique.Deux méthodes
01 — curl | bash
Vérifie python3 et curl, contrôle le shebang et le SHA256, installe
dans ~/.local/bin/sysinfo, et affiche la ligne $PATH à ajouter si besoin.
02 — Manuelle
mkdir -p ~/.local/bin
cp sysinfo.py ~/.local/bin/sysinfo
chmod +x ~/.local/bin/sysinfo
export PATH="$HOME/.local/bin:$PATH" # si pas déjà dans le PATH
curl -sSL https://devexploris.com/sysinfo/sysinfo.py -o sysinfo.py
curl -sSL https://devexploris.com/sysinfo/sysinfo.py.sha256 -o sysinfo.py.sha256
sha256sum -c sysinfo.py.sha256 # shasum -a 256 sur macOS
Les flags disponibles
Les flags se combinent : chacun ajoute son bloc à la sortie. -a les active tous.
01 — Système
| Flag | Sortie |
|---|---|
| -a, --all | Toutes les infos disponibles |
| -4, --ipv4 | Adresse IPv4 de l'interface réseau sortante |
| -g, --groups | Groupes de l'utilisateur courant |
| -u, --uptime | Uptime de la machine, lu dans /proc/uptime. Linux uniquement |
02 — Réseau
| Flag | Sortie |
|---|---|
| -l, --location | IP publique + ville/pays via ipinfo.io, fallback ip-api.com |
| --local-ip | Adresse LAN, sans appel externe |
| --vpn | Détection VPN / proxy / hébergeur (heuristique, voir limites) |
| --ports | Ports en écoute via ss, fallback netstat |
03 — SSH · Docker
| Flag | Sortie |
|---|---|
| --ssh | Hosts déclarés dans ~/.ssh/config, avec user et hostname |
| --docker | Containers actifs et networks Docker, via la CLI docker |
sysinfo -l --vpn # localisation + détection VPN
sysinfo --local-ip -4 # IP locale et IPv4 réseau
sysinfo -a -t # tout, sous forme de tableau
sysinfo --ssh --docker # hosts SSH et containers
En lignes, ou en tableau
Par défaut, une ligne par info. -t affiche les mêmes données en tableau à deux
colonnes, ajusté à la largeur du terminal. -c ajoute la couleur, -i
ouvre le mode interactif.
| (défaut) | Une ligne par info |
| -t, --table | Tableau à deux colonnes |
| -c, --color | Couleurs ANSI |
| -i, --interactive | Onglets navigables, voir plus bas |
| -h, --help | Flags et exemples |
Cinq onglets navigables
Construit avec curses. Chaque onglet met son résultat en cache mémoire ;
r force un nouveau fetch.
Clavier
| Touche | Action |
|---|---|
| ← → · Tab | Changer d'onglet |
| r | Rafraîchir l'onglet courant (invalide son cache) |
| q · Échap | Quitter |
Checksum et permissions
Le script est publié avec son SHA256 : install.sh et --update le
vérifient, et il reste vérifiable à la main. Le script n'appelle pas sudo.
sha256sum -c sysinfo.py.sha256 # shasum -a 256 sur macOS
Permissions
| Fonctionnalité | Sans sudo | Avec sudo |
|---|---|---|
| Système · réseau · SSH | Sortie complète | Aucune différence |
| --ports | Process des autres utilisateurs affichés N/A | Tous les process visibles |
| --docker | Message d'erreur si hors du groupe docker | Fonctionne |
| --update | Suggère sudo si installé dans un dossier système | Fonctionne |
Ce que fait --update
✓ Checksum vérifié
✓ sysinfo mis à jour
| 01 | Le script distant est téléchargé dans un fichier temporaire. |
| 02 | Son SHA256 est vérifié face au checksum publié. S'ils diffèrent, rien n'est écrit. |
| 03 | Le checksum distant est comparé à celui du fichier installé. S'ils correspondent, le script est déjà à jour. |
| 04 | os.replace() échange le fichier de façon atomique : une mise à jour coupée ne laisse pas de script à moitié écrit. |
shutil.which() quand le script est lancé via le $PATH,
donc --update fonctionne depuis n'importe quel dossier d'installation.
Appel API et uptime
| --vpn | Repose sur un appel API externe : un rate limit peut être atteint. |
| -u, --uptime | Linux uniquement. |