Perl для системного администрирования




Отслеживание операций с файлами и сетью - часть 2


http://www.sysinternals.com

WINWORD.EXE pid: 652

C:\TEMP\~DFF2B3.tmp WINWORD.EXE pid: 652

C:\TEMP\~DFA773.tmp WINWORD.EXE pid: 652

C:\TEMP\~DF9l3E.tmp

Программа nthandle позволяет получить эту информацию по конкретному процессу при помощи ключа -р.

Использовать ее из Perl очень просто, поэтому не будем приводить примеры. Вместо этого посмотрим на подобную, но более интересную операцию - аудит.

NT/2000 позволяет эффективно отслеживать изменения в файлах, каталогах или иерархии каталогов. Вы могли бы учитывать постоянное повторение операции stat() над нужным объектом, но это потребовало бы слишком больших затрат процессорного времени. В NT/2000 отслеживание изменений можно поручить операционной системе.

Относительно безболезненно эту работу выполняют два модуля: Win32: :ChangeNotify Кристофера Мадсена (Christopher J. Madsen) и Win32: :AdvNotify Амина Мюлей Рамдана (Amine Moulay Ramdane). В примерах этого раздела будет использоваться второй, т. к. он более гибкий.

Работа с модулем Win32: : AdvNotify- это многошаговый процесс.

На следующем шаге нужно создать следящий поток (monitoring thread) для интересующего нас каталога. Win32: :AdvNotify позволяет следить сразу за набором каталогов, для этого необходимо лишь создать несколько потоков. Мы же будем следить только за одним каталогом:

Sthread = $aob]->StartThread(Directory => 'C:\terr.c'.

Filter => All, WatchSubtree -> 0) or die "Невозможно начать поток\п":

Первый параметр этого метода говорит сам за себя; рассмотрим остальные.

Установив Filter в одно из приведенных значений (табл. 4.1) или в их

комбинацию (SETTING 1 | SETTING2 | SETTINGS. ..), можно следить за различными типами изменений.

Таблица 4.1. Параметры Filter в Win32::AdvNotifу

Параметр

Отмечает

FILE_NAME

Создание, удаление, переименование файла(ов)

DIR_NAME

Создание или удаление каталога(ов)

ATTRIBUTES

Изменение атрибутов любого каталога

SIZE

Изменение размера любого файла

LAST_ WRITE

Изменение даты модификации файла(ов)

CREATION

Изменение даты создания файла(ов)

SECURITY

Изменение информации безопасности (ACL и пр.) файла(ов)

<


Содержание  Назад  Вперед