Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Оповещение при копировании файла  (Прочитано 3163 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asterix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Оповещение при копировании файла
« : 11 Ноября 2010, 12:08:38 »
Здравствуйте уважаемые форумчане!
Прошу вашего совета и мнения.
Возникла одна мысль, но не знаю возможно ли это реалзовать, я еще новичёк в никсах. Вообщем суть в следующем:
Имеем виндузовую сетку в ней сервер Ubuntu Linux 8.04, на нём подняа SAMBA, у каждого юзера сети есть своя папка в самбе, к которой он имеет полный доступ,  в папки др. юзеров он может только копировать файлы и так со всем пользователями (надеюсь понятно). Так вот хотелось бы чтобы было так при копировании файла юзером1 в папку юзера2, юзеру2 приходило автоматически уведомление(сообщение) что к нему в папку скопировали файл... вообщем как-то так.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #1 : 11 Ноября 2010, 12:17:22 »
Вариант такой.
- Задать подробное логгирование действий в самбе
("по-умолчанию" этого нет, нужно сделать примерно так:
- в общую секцию написать

# detailed logging
log level = 0 vfs:2
max log size = 0
syslog = 0

- в секции нужной шары написать

vfs objects = full_audit
full_audit:prefix = [ТУТ_ПРЕФИКС_ШАРЫ_В_ЛОГАХ] %u|%I
full_audit:failure = none
full_audit:success = mkdir rmdir open read pread write pwrite sendfile rename unlink lock
full_audit:facility = local5
full_audit:priority = debug

в /etc/syslog.conf написать

# SAMBA logging
local5.debug  -/var/log/samba_audit.log

Для ротации этого лога в папке /etc/logrotate.d создать файл samba_audit содержащий:

/var/log/samba_audit.log {
   daily
   rotate 7
   compress
   delaycompress
   missingok
   notifempty
   create 640 syslog adm
}

- Парсить по крону скриптом лог samba_audit
- При возникновении нужного события в логе - посылать сообщение (например, по почте).
« Последнее редактирование: 11 Ноября 2010, 12:27:16 от Karl500 »

Оффлайн asterix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #2 : 11 Ноября 2010, 12:20:38 »
Ух ты супер, значит все же можно так сделать!!!
Извените за безграмотность но что означает "парсить" , и можно ли допустим отправлять через например NetSend виндовый имеется ли такое в Линуксе?

Оффлайн kobaltd

  • Активист
  • *
  • Сообщений: 273
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #3 : 11 Ноября 2010, 12:25:30 »
теоретически можно. Когда то давно (есчо в прошлой жизни) прикручивал к самбе drweb - он прикручивается путем выставления к шаре через параметр vfs objects  обработчика от drweb. самба при операциях копирования/записи сначала отдает этот файл обработчику после того как тот скажет true/false соответственно обрабатывала его дальше.  У тебя путь в том же направлении - искать/создавать такой обработчик.
Пусть второй - анализ логов
Мое мнение - как человека умеющего программировать для своих нужд первый путь легче, тем более примеров обработчиков полно и написать свой не так тяжело.
Удачи.

Оффлайн asterix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #4 : 11 Ноября 2010, 12:29:22 »
теоретически можно. Когда то давно (есчо в прошлой жизни) прикручивал к самбе drweb - он прикручивается путем выставления к шаре через параметр vfs objects  обработчика от drweb. самба при операциях копирования/записи сначала отдает этот файл обработчику после того как тот скажет true/false соответственно обрабатывала его дальше.  У тебя путь в том же направлении - искать/создавать такой обработчик.
Пусть второй - анализ логов
Мое мнение - как человека умеющего программировать для своих нужд первый путь легче, тем более примеров обработчиков полно и написать свой не так тяжело.
Удачи.
Спасибо, буду копать!

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #5 : 11 Ноября 2010, 12:38:24 »
Чуть дополнил (забыл написать про пару файлов syslog).

Парсить - это значит анализировать строки этого лог-файла, и определять, наступило ли нужное событие. По крону - это значит периодически (например, раз в минуту/пять минут/сколько нужно).

Лог имеет вот такой вид (это - запись файла nasaid.pdf на сервер glenmorangie в шару [home] пользователем username с машины с адресом 10.0.0.10 в папку ERC):

Nov 11 12:33:34 glenmorangie smbd_audit: [home] username|10.0.0.10|open|ok|w|ERC/nasaid.pdf
Nov 11 12:33:34 glenmorangie smbd_audit: [home] username|10.0.0.10|pwrite|ok|ERC/nasaid.pdf

Через NetSend - можно но, насколько помню, были какие-то проблемы с ним - поройтесь в гугле.

UPD: Хотя идея kobaltd по использованию vfs напрямую для обработчика (а не через логи) кажется более правильной.
« Последнее редактирование: 11 Ноября 2010, 12:51:46 от Karl500 »

Оффлайн asterix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #6 : 11 Ноября 2010, 13:16:28 »
Чуть дополнил (забыл написать про пару файлов syslog).

Парсить - это значит анализировать строки этого лог-файла, и определять, наступило ли нужное событие. По крону - это значит периодически (например, раз в минуту/пять минут/сколько нужно).

Лог имеет вот такой вид (это - запись файла nasaid.pdf на сервер glenmorangie в шару [home] пользователем username с машины с адресом 10.0.0.10 в папку ERC):

Nov 11 12:33:34 glenmorangie smbd_audit: [home] username|10.0.0.10|open|ok|w|ERC/nasaid.pdf
Nov 11 12:33:34 glenmorangie smbd_audit: [home] username|10.0.0.10|pwrite|ok|ERC/nasaid.pdf

Через NetSend - можно но, насколько помню, были какие-то проблемы с ним - поройтесь в гугле.

UPD: Хотя идея kobaltd по использованию vfs напрямую для обработчика (а не через логи) кажется более правильной.
Ок спасибо занаводку буду пробывать разбираться!

Оффлайн kostryukov

  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: Оповещение при копировании файла
« Ответ #7 : 11 Ноября 2010, 13:35:43 »
incron ?

(Нажмите, чтобы показать/скрыть)
у меня можно спросить=)

Оффлайн Dmit

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #8 : 16 Января 2011, 18:02:51 »
У меня реализавано через vbs скрипт, у каждого пользователя мониторится своя папки и при появление файла сразу у юзверу появляется сообщение

Оффлайн kostryukov

  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: Оповещение при копировании файла
« Ответ #9 : 16 Января 2011, 21:43:54 »
покажи скрипт
у меня можно спросить=)

Оффлайн wizard86

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Оповещение при копировании файла
« Ответ #10 : 05 Мая 2015, 10:46:45 »
Добрый день.
Поделитесь пожалуйста опытом более подробна.
Как создать чтоб при появление в папке Usera_1 файла от Usera_2, Usera_1 получал уведомление в Jabber'e.
Отправка сообщений из консоли настроено по этой статье  - http://habrahabr.ru/post/85407/

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.