Страница 1 из 1

Контроль времени работы.

Добавлено: 2009-01-15 15:16:06
Amadeus
Добрый день.

Есть такой интересный вопрос.


Имеется контроллер домена на LDAP. И задача написать скрипт для контроля рабочего времени сотрудников. Т.е так как в организации у каждого есть комп, как вариант прикрутить к домену. Только вот проблема в том что samba пишет лог по ип но не по логину, а ldap без времени. Может кто то уже сталкивался с подобным?

Re: Контроль времени работы.

Добавлено: 2009-01-15 20:47:50
Amadeus
Усе, допер, необходимо было просто повысить уровень отладки логов машин.

Далее все сводится к написанию простого обработчика логов.

Re: Контроль времени работы.

Добавлено: 2009-01-15 21:01:15
Lanix
Если не ошыбаюсь, то IBM Lotus Notes умеет такое делать.
У нее там очень много мозможностей.

Re: Контроль времени работы.

Добавлено: 2009-01-15 21:32:13
Dron
Ну не ставить же Lotus ради подсчета времени работы :)

Re: Контроль времени работы.

Добавлено: 2009-01-15 22:15:32
Lanix
Я думаю, ето удобней чем поднимать конроллер домена на LDAP

Re: Контроль времени работы.

Добавлено: 2009-01-15 23:07:26
Dron
ну у топикстартера уже имеется, да и поднимается нормально и потом есть не просит :)

Re: Контроль времени работы.

Добавлено: 2009-01-16 19:50:07
Amadeus
Собственно задача оказывается не так страшна как ее малюют:)

Интересуют фактически только две строчки.

Код: Выделить всё

Момент авторизации.
SAM Logon (Interactive). Domain:[Имя домена].  User:[osipov@OSIP] Requested Domain:[Имя домена]


Конец сеанса.
osipov closed file NTUSER.DAT (numopen=1) NT_STATUS_OK
Плюс последующие за ними строчки с указанием времени.
и логи самбы вида namecomp.log, которые данный обработчик должен прочесывать.
Когда закончу выложу тут скрипт. Может кому интересно будет.

Re: Контроль времени работы.

Добавлено: 2009-01-21 15:24:22
Amadeus
Ну собственно все.

Начало скрипта, который реализуется обычными командами. выглядит так.

Код: Выделить всё

# Копируем логи самбы в отдельную папку на другом харде что бы снять часть нагрузки с домена при работе.
/bin/cp -r /var/log/samba/* /backup/logs/into

# Вытаскиваем логи самбы вида namecomp.log так как интересуют машины в домене.
/usr/bin/find /backup/logs/into -name "*[a-z]" -print -exec cp {} /backup/logs/name \;

# Отбираем определенные строчки поиска по логам соответствующие шаблону в файле search.txt и создаем чероновой файл с отобраными строками.
/usr/bin/fgrep /backup/logs/name/* -f /backup/logs/search.txt | tee /backup/info.txt

# Выполняем второй отбор уже конкретно из чернового файла вытаскиваем строчку с именем юзера и впереди стояшую строчку с временем авторизации в домене. Данные записываем в файл.
/usr/bin/fgrep /backup/info.txt -f /backup/logs/search2.txt -B 1 | tee /backup/clean.txt

# С помошью утилиты awk вытаскиваем из результатов второго отбора поля с именем юзера в домене и временем и строим на основе данной информации таблицу.

/usr/bin/awk 'BEGIN {print "Name                           Time\n-------------------------------"} {printf "%-30s  %s\n", $6, $2}' /backup/clean.txt | tee /backup/logs/out/otchot.doc
Примерно таким же образом обрабатывается момент выхода из системы.

Остальное уже для каждого по вкусу, можно добавить ротацию логов, запихивание старых очетов в архив и удаление отчетов старше 7 дней.


На выходе получается вот такой вордовский файл.

Код: Выделить всё

Name                           Time
-------------------------------
                                          19:23:08,
User:[marina@BUCH]              SAM
Где показан когда и на какой машине авторизирвоался юзер.


Чем бы админ не тешился лишь бы работал:)
Мания слежения у руководства блин:)