🐍 Как отследить скрипты Python с помощью trace.py

by itisgood
Все больше и больше скриптов для административных задач в ОС Linux пишутся на Python.
Цель этого руководства – представить инструмент для отслеживания выполнения операторов Python.
Python – это динамический объектно-ориентированный язык программирования, который можно использовать для разработки различных типов программного обеспечения.
Он предлагает сильную поддержку для интеграции с другими языками и инструментами и поставляется с обширными стандартными библиотеками.

В дистрибутивах Linux Python широко используется для написания инструментов администрирования, таких как пакет конфигурации принтера и т. д.

Отслеживание выполнения оператора Python и построчная запись всех выполняющихся кодов очень полезно для эффективного поиска причины проблемы.

К счастью, пакет python поставляется с инструментом trace.py, который можно использовать для удовлетворения этих требований.

Trace.py находится в каталоге /user/lib/python2.x, где python2.x – это версия python (например, python2.3, python2.4 и т. д.)

# rpm -ql python |grep trace.py
/usr/lib/python2.3/trace.py
/usr/lib/python2.3/trace.pyc
/usr/lib/python2.3/trace.pyo
Например, для трассировки /usr/sbin/printconf-backend, команда выглядит следующим образом:
# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend
Он покажет всю консольную информацию и исходный код скрипта Python на консоли. Мы можем записать все выходные данные следующим образом.
# script /tmp/printerconf.log
# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend
# exit
#
Затем проверьте файл /tmp/printerconf.log.
Примечание. По умолчанию trace.py не имеет разрешения на выполнение. Поэтому необходимо предоставить разрешение на выполнение перед выполнением вышеуказанных инструкций.

Дополнительные параметры Trace.py

Использование параметра –help подробно показывает информацию об использовании файла trace.py. Например:
$ /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=

 

You may also like

Leave a Comment