Страница 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
Где показан когда и на какой машине авторизирвоался юзер.
Чем бы админ не тешился лишь бы работал:)
Мания слежения у руководства блин:)