GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tracer des scripts Python à l'aide de trace.py

De plus en plus de scripts pour les tâches administratives sur le système d'exploitation Linux sont écrits par Python. Cet article vise à présenter un outil pour tracer l'exécution des instructions Python. Python est un langage de programmation dynamique orienté objet qui peut être utilisé pour développer différents types de logiciels. Il offre un support solide pour l'intégration avec d'autres langages et outils et est livré avec des bibliothèques standard étendues. Dans les distributions Linux, Python est largement utilisé pour écrire des outils d'administration, tels que le package de configuration d'imprimante, etc.

Suivre l'exécution de l'instruction Python et enregistrer tous les codes d'exécution ligne par ligne est très utile pour localiser efficacement la cause d'un problème.

Heureusement, le package python est livré avec un outil trace.py , qui peut être utilisé pour répondre à ces exigences. Le trace.py réside dans le répertoire /user/lib/python2.x, où python2.x est la version de python (par exemple python2.3 et python2.4 etc..)

# rpm -ql python |grep trace.py
/usr/lib/python2.3/trace.py
/usr/lib/python2.3/trace.pyc
/usr/lib/python2.3/trace.pyo

Par exemple, pour tracer /usr/sbin/printconf-backend, la commande est la suivante :

# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend

Il affichera toutes les informations de débogage et le code source du script python sur la console. Nous pouvons enregistrer toutes les sorties comme suit.

# script /tmp/printerconf.log
# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend
# exit
#

Vérifiez ensuite le fichier /tmp/printerconf.log fichier.

Remarque :Par défaut, le trace.py n'a pas d'autorisation d'exécution. Il est donc nécessaire d'accorder l'autorisation d'exécution avant d'exécuter les instructions ci-dessus.

Plus d'options de Trace.py

L'option –help affiche les informations d'utilisation en détail pour trace.py. Par exemple :

$ /usr/lib/python2.3/trace.py --help
Usage: /usr/lib/python2.3/trace.py [OPTIONS]  [ARGS]

Meta-options:
--help                Display this help then exit.
--version             Output version information then exit.

Otherwise, exactly one of the following three options must be given:
-t, --trace           Print each line to sys.stdout before it is executed.
-c, --count           Count the number of times each line is executed
                      and write the counts to .cover for each
                      module executed, in the module's directory.
                      See also `--coverdir', `--file', `--no-report' below.
-l, --listfuncs       Keep track of which functions are executed at least
                      once and write the results to sys.stdout after the
                      program exits.
-r, --report          Generate a report from a counts file; do not execute
                      any code.  `--file' must specify the results file to
                      read, which must have been created in a previous run
                      with `--count --file=FILE'.

Modifiers:
-f, --file=     File to accumulate counts over several runs.
-R, --no-report       Do not generate the coverage report files.
                      Useful if you want to accumulate over several runs.
-C, --coverdir=  Directory where the report files.  The coverage
                      report for . is written to file
                      //.cover.
-m, --missing         Annotate executable lines that were not executed
                      with '>>>>>> '.
-s, --summary         Write a brief summary on stdout for each file.
                      (Can only be used with --count or --report.)

Filters, may be repeated multiple times:
--ignore-module= Ignore the given module and its submodules
                      (if it is a package).
--ignore-dir=    Ignore files in the given directory (multiple
                      directories can be joined by os.pathsep).


Linux
  1. Comment installer Python sur Linux

  2. Comment exécuter des scripts Python à partir du shell

  3. Guide pratique :programmation de sockets en Python

  4. Comment installer Python 3 sur CentOS 7 à l'aide de SCL

  5. Comment créer un utilisateur sous Linux en utilisant Python

Comment créer un compartiment S3 à l'aide de Python Boto3 sur AWS

Comment suivre l'exécution d'un programme à l'aide de la commande Linux Strace

Comment gérer les packages Python à l'aide de PIP

Comment configurer un serveur de fichiers de base à l'aide de simpleHTTPserver

Comment redimensionner des images à l'aide de Python

Comment configurer l'exécution automatique d'un script Python à l'aide de Systemd