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

Прошу помощи. Скрипт аптайм пользователя подключения по VPN

Добавлено: 21 июн 2022, 14:43
rbr
Всех приветствую. Ситуация следующая, есть скрипт
 

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

UP

:local pppuser
:local localAddr
:local remoteAddr
:local callerId
:local calledId
:local interfaceName
 
:set pppuser $"user"
:set localAddr $"local-address"
:set remoteAddr $"remote-address"
:set callerId $"caller-id"
:set calledId $"called-id"
:set interfaceName [/interface get $interface name] 

:local "msg_subj" "Пользователь $user подключился к VPN ООО РОга и Копыта"
:local "msg_body" "Пользователь $user подключился в $[/system clock get time] к ***** с внешним IP $callerId и получил внутренний IP $remoteAddr. Статус подключен";
/tool e-mail
set address=smtp.yandex.ru from="Mikrotik  <********@yandex.ru>" password=********** port=587 start-tls=yes user=******
send to="*******@mail.ru" subject=$"msg_subj" body=$"msg_body"

DOWN

:local pppuser
:local localAddr
:local remoteAddr
:local callerId
:local calledId
:local interfaceName
 
:set pppuser $"user"
:set localAddr $"local-address"
:set remoteAddr $"remote-address"
:set callerId $"caller-id"
:set calledId $"called-id"
:set interfaceName [/interface get $interface name]

:local "msg_subj" "Пользователь $user отключился от VPN ООО РОга и Копыта"
:local "msg_body" "Пользователь $user отключился в $[/system clock get time] от ******* с внешним IP $callerId и внутренним IP $remoteAddr. Статус отключен. Uptime пользователя за сеанс $[/ppp active get [/ppp active find name=$user] uptime] ";
/tool e-mail
set address=smtp.yandex.ru from="Mikrotik  <*******@yandex.ru>" password=********* port=587 start-tls=yes user=*******
send to="******@mail.ru" subject=$"msg_subj" body=$"msg_body"
Данный вариант скрипта работает если уведомления отсылаются на почту.
Если делать чтобы писалось в лог :log info message=, то секция DOWN не срабатывает.
помогите разобраться в чем ошибка?

Re: Прошу помощи. Скрипт аптайм пользователя подключения по VPN

Добавлено: 21 июн 2022, 15:11
Sertik
Возможно из-за этой строки:

:log info message="$callerId @ $remoteAddr disconnected"

Зачем в ней символ "@" ?

К тому же при переходе в "DOWN" некоторые переменные становятся не доступными.

Вот как у меня работает, можете взять мой код:

UP:

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

{
:local smtpserv [:resolve "smtp.mail.ru"];
:local Eaccount [/tool e-mail get user];
:local pass [/tool e-mail get password];
:local Email "user@mail.ru";
;
/tool e-mail send from="<$Eaccount>" to=$Email server=$smtpserv \
 port=587 user=$Eaccount password=$pass start-tls=yes subject="Пользователь $user подключился к VPN"  body="Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] vpn IP - $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] address] в $[/system clock get time].\r\nIP-адрес клиента - $"caller-id".\r\nИнфо об IP клиента - http://apps.db.ripe.net/search/query.html?searchtext=$"caller-id"";
}
DOWN:

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

{
:local smtpserv [:resolve "smtp.mail.ru"];
:local Eaccount [/tool e-mail get user];
:local pass [/tool e-mail get password];
:local Email "user@mail.ru";
;
/tool e-mail send from="<$Eaccount>" to=$Email server=$smtpserv \
 port=587 user=$Eaccount password=$pass start-tls=yes subject="Пользователь $user отключился от VPN"  body="Пользователь $user отключился в $[/system clock get time].";
}

Re: Прошу помощи. Скрипт аптайм пользователя подключения по VPN

Добавлено: 21 июн 2022, 15:13
rbr
Спасибо за ответ. Нет не в ней. Это мой косяк не убрал строку, тестировал. Сейчас исправлю.
Если уведомления отправлять по почте, то все ок. Но писем очень много получается. Не совсем удобно. Нужно чтобы писалось в лог, оттуда уже забирать на удаленный сервер.

Если из секции DOWN убрать $[/ppp active get [/ppp active find name=$user] uptime] и отправлять уведомления в лог, то работает, но без параметра аптайм. Интересно в чем проблема. Если слать на почту то все ок. Если писать в лог то не пашет. Нет параметра аптайм.

Re: Прошу помощи. Скрипт аптайм пользователя подключения по VPN

Добавлено: 21 июн 2022, 15:23
rbr
Нужен параметр аптайм. Его нет если писать в лог. Если слать на почту то есть. В чем причина непонятно.

Re: Прошу помощи. Скрипт аптайм пользователя подключения по VPN

Добавлено: 20 июл 2022, 01:12
Brook
На всякий случай оставлю это здесь

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

:local pppUptime [ppp active get [find name=$pppName] uptime]