Все больше и больше скриптов для административных задач в ОС 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=