Récupérer les informations systèmes d’une machine

Fermé
Cyberlabo Messages postés 1 Date d'inscription lundi 5 février 2018 Statut Membre Dernière intervention 5 février 2018 - Modifié le 7 févr. 2018 à 22:18
mamiemando Messages postés 33327 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 octobre 2024 - 7 févr. 2018 à 22:17
Bonjour,

Je voudrais pouvoir réaliser un modeste programme en Python pour tenter de récupérer les informations systèmes d’une machine lambda.

Mes questions sont :

1) Comment s'y prendre pour utiliser les modules comme «sys » ou « argparse » afin de quantifier la liste des paramètres passés au programme.
2) Comment bien utiliser le module « os » pour récupérer les informations du système (OS, hostname, configuration réseau, espace de stockage, liste des packages installés, liste des utilisateurs connectés, variables d’environnement, charge moyenne du système).
3) Qu'est-ce précisément la gestion d’exception pour lister les erreurs (liées par exemple aux droits d’accès) ?.
4) Comment modifier le programme nouvellement crée afin de pouvoir lire le contenu de ce fichier à l’aide d’un argument passé au programme ?

Merci par avance à tous les futurs contributeurs pour leurs précieux éclaircissements.

1 réponse

mamiemando Messages postés 33327 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 octobre 2024 7 799
Modifié le 7 févr. 2018 à 22:20
Bonjour,

1) Pour récupérer les arguments d'un programme tu peux utiliser optparse. Mais si c'est juste récupérer la liste d'arguments, il suffit d'itérer sur
sys.argv
.

2) Il suffit de regarder la documentation liée à ce module.

3) Normalement si une fonction peut lever une exception, c'est sensé être spécifié dans la documentation. Il faut rattraper en priorité les exceptions les plus spécifiques (les exceptions filles, si tu as une notion d'héritage) et terminer par l'exception générique (
Exception
). En python, une fonction n'est pas obligée de rattraper une exception, elle peut être traversée. Si une exception n'est rattrapée par personne, le programme plante en signalant l'exception non rattrapée.
https://docs.python.org/2/tutorial/errors.html

try:
  ...
except ExceptionFille as e:
  ...
except ExceptionMere as e:
  ...
except Exception as e:
  ...


4) Une fois le nom du programme spécifié (e.g.
filename = sys.argv[1]
) tu peux l'ouvrir ainsi (syntaxe python3) :

with open(filename) as f:
  for line in f:
    print(line)


Variante python 2 : https://stackoverflow.com/questions/4709655/how-to-output-every-line-in-a-file-python

Bonne chance
0