Python píše stále více skriptů pro administrativní úlohy na OS Linux. Tento příspěvek si klade za cíl představit nástroj pro sledování provádění příkazů Pythonu. Python je dynamický objektově orientovaný programovací jazyk, který lze použít k vývoji různých typů softwaru. Nabízí silnou podporu pro integraci s jinými jazyky a nástroji a je dodáván s rozsáhlými standardními knihovnami. V linuxových distribucích se Python široce používá k psaní administrativních nástrojů, jako je konfigurační balíček tiskárny atd.
Sledování provádění příkazu Pythonu a záznam všech spuštěných kódů řádek po řádku je velmi užitečné pro efektivní nalezení příčiny problému.
Naštěstí balíček python přichází s nástrojem trace.py , které lze použít ke splnění těchto požadavků. Soubor trace.py se nachází v adresáři /user/lib/python2.x, kde python2.x je verze pythonu (např. python2.3 a python2.4 atd.)
# rpm -ql python |grep trace.py /usr/lib/python2.3/trace.py /usr/lib/python2.3/trace.pyc /usr/lib/python2.3/trace.pyo
Například pro trasování /usr/sbin/printconf-backend je příkaz následující:
# /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend
Zobrazí všechny informace o ladění a zdrojový kód skriptu python na konzole. Veškerý výstup můžeme zaznamenat následovně.
# script /tmp/printerconf.log # /usr/lib/python2.x/trace.py --trace /usr/sbin/printconf-backend # exit #
Poté zkontrolujte /tmp/printerconf.log soubor.
Poznámka :Ve výchozím nastavení nemá trace.py žádné oprávnění ke spuštění. Před provedením výše uvedených pokynů je tedy nutné udělit povolení k provedení.Další možnosti Trace.py
Pomocí volby –help zobrazíte podrobné informace o použití pro trace.py. Například:
$ /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).