Menu

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

Cyberlabo 1 Messages postés lundi 5 février 2018Date d'inscription 5 février 2018 Dernière intervention - 5 févr. 2018 à 17:58 - Dernière réponse : mamiemando 28364 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

1 réponse

mamiemando 28364 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 24 mai 2018 Dernière intervention - Modifié par mamiemando le 7/02/2018 à 22:20
0
Merci
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
Commenter la réponse de mamiemando