Open Source / Shizuku · Myaku · sysinfo
Open Source · CLI Python

Sysinfo System Report.

Utilisateur, machine, IP publique et locale, ports en écoute, hosts SSH connus et containers actifs.

Python ≥ 3.8 Stdlib uniquement Linux · macOS MIT
$ curl -sSL https://devexploris.com/sysinfo/install.sh | bash
01 — Introduction

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 -a -c
 
👤 Utilisateur - obiwan_kenobi
🖥️ Machine - faucon-millenium · Linux 7.0.0
⏱ Uptime - 6h 42m
🌍 IP publique - 66.66.66.66 · Coruscant, OR66
🔌 Ports - TCP 0.0.0.0:5432 · TCP 127.0.0.1:8000
🐳 Docker - 3 containers · 2 networks
$
Zéro dépendance
Un seul fichier sysinfo.py, à copier où on veut.
Lignes ou tableau
En lignes ou en tableau (-t), plus un mode interactif à onglets (-i).
Mises à jour vérifiées
--update vérifie le SHA256 et remplace le binaire de façon atomique.
02 — Installation

Deux méthodes

01 — curl | bash

$ curl -sSL https://devexploris.com/sysinfo/install.sh | 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
Checksum vérifiable :
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
03 — Commandes

Les flags disponibles

Les flags se combinent : chacun ajoute son bloc à la sortie. -a les active tous.

01 — Système

Flag Sortie
-a, --allToutes les infos disponibles
-4, --ipv4Adresse IPv4 de l'interface réseau sortante
-g, --groupsGroupes de l'utilisateur courant
-u, --uptimeUptime de la machine, lu dans /proc/uptime. Linux uniquement

02 — Réseau

Flag Sortie
-l, --locationIP publique + ville/pays via ipinfo.io, fallback ip-api.com
--local-ipAdresse LAN, sans appel externe
--vpnDétection VPN / proxy / hébergeur (heuristique, voir limites)
--portsPorts en écoute via ss, fallback netstat

03 — SSH · Docker

Flag Sortie
--sshHosts déclarés dans ~/.ssh/config, avec user et hostname
--dockerContainers actifs et networks Docker, via la CLI docker
Combiner :
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
04 — Modes d'affichage

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, --tableTableau à deux colonnes
-c, --colorCouleurs ANSI
-i, --interactiveOnglets navigables, voir plus bas
-h, --helpFlags et exemples
Sortie en tableau : colonnes Info et Valeur
sysinfo -l -t
05 — Mode interactif

Cinq onglets navigables

$ sysinfo -i

Construit avec curses. Chaque onglet met son résultat en cache mémoire ; r force un nouveau fetch.

Mode interactif, onglet Système
sysinfo -i

Clavier

Touche Action
← → · TabChanger d'onglet
rRafraîchir l'onglet courant (invalide son cache)
q · ÉchapQuitter
06 — Sécurité

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
07 — Mise à jour

Ce que fait --update

$ sysinfo --update
✓ Checksum vérifié
✓ sysinfo mis à jour
01
Téléchargement
02
SHA256
03
Comparaison
04
os.replace()
01Le script distant est téléchargé dans un fichier temporaire.
02Son SHA256 est vérifié face au checksum publié. S'ils diffèrent, rien n'est écrit.
03Le checksum distant est comparé à celui du fichier installé. S'ils correspondent, le script est déjà à jour.
04os.replace() échange le fichier de façon atomique : une mise à jour coupée ne laisse pas de script à moitié écrit.
Chemin d'installation : résolu via shutil.which() quand le script est lancé via le $PATH, donc --update fonctionne depuis n'importe quel dossier d'installation.
08 — Limites

Appel API et uptime

--vpn Repose sur un appel API externe : un rate limit peut être atteint.
-u, --uptime Linux uniquement.