DuMbh3aD Posted February 1, 2022 Report Share Posted February 1, 2022 Здравейте, Новак съм в писането на скриптове и някой неща не ги разбирам. Опитвам се да си направя скрипт с който да следя продължителността на VPN конекциите. На пръв поглед изглежда елементарно, но когато го сложа в "On Down" секцията не работи. :log info ($user . " disconnect from " . $"caller-id" . ". Uptime connection - " . [/interface sstp-server get $interface uptime]) Предполагам не работи, защото при "On Down" интерфейса вече не съществува. Може би трябва при "On Up" да се стартира system script с някакъв таймер и при "On Down" да го спира? Link to comment Share on other sites More sharing options...
DuMbh3aD Posted February 1, 2022 Author Report Share Posted February 1, 2022 След няколко часа успях да сътворя следното: On Up: :local UserDomainName ($user . ".domain.name"); /ip dns static add address=$"remote-address" name=$UserDomainName; :log info ($user . " connect with private IP address " . $"remote-address" . " from " . $"caller-id"); On Down :local UserUpTime [/interface sstp-server get $interface uptime]; :local UserDomainName ($user . ".domain.name"); /ip dns static remove [find name=$UserDomainName]; :log info ($user . " disconnect. Uptime connection - " . $UserUpTime); Новото което ме мъчи сега е как да запиша тези логове във файл? Пробвах с /file set SSTP-log.txt contents=($user . " disconnect. Uptime connection - " . $UserUpTime). Записва се само последното събитие и няма дата и час. Link to comment Share on other sites More sharing options...
Administrator JohnTRIVOLTA Posted February 1, 2022 Administrator Report Share Posted February 1, 2022 (edited) /system/logging/action add disk-file-count=10 disk-file-name=flash/pppstats disk-lines-per-file=2000 name=pppstat target=disk /system/logging/set topics=info action=pppstat Може да си промените параметрите на файла и броят им! Edited February 1, 2022 by JohnTRIVOLTA Link to comment Share on other sites More sharing options...
DuMbh3aD Posted February 2, 2022 Author Report Share Posted February 2, 2022 По този начин всичко с topic info се записва във файла включително и dhcp, info; system, info; script, info ... Ако направя "/system logging add action=PPPStats topics=info, sstp" във файла не се записват логовете, които ми трябват, ако направя "/system logging add action=PPPStats topics=info, script" се записват и логове от други скриптове. може ли да се направи нещо като това: :log sstpstats ($user . " disconnect. Uptime connection - " . $UserUpTime); /system logging add action=PPPStats topics=sstpstats Link to comment Share on other sites More sharing options...
Administrator 111111 Posted February 2, 2022 Administrator Report Share Posted February 2, 2022 Преди 1 час, DuMbh3aD написа: По този начин всичко с topic info се записва във файла включително и dhcp, info; system, info; script, info ... Ако направя "/system logging add action=PPPStats topics=info, sstp" във файла не се записват логовете, които ми трябват, ако направя "/system logging add action=PPPStats topics=info, script" се записват и логове от други скриптове. може ли да се направи нещо като това: :log sstpstats ($user . " disconnect. Uptime connection - " . $UserUpTime); /system logging add action=PPPStats topics=sstpstats Има опция за изключване на всички ненужни неща от лога /system logging add topics=ipsec,debug,sstp,!dhcp,!interface в примера интерфейсите и dhcp не се отразяват в лога Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
DuMbh3aD Posted February 2, 2022 Author Report Share Posted February 2, 2022 (edited) Ще си задам въпроса по друг начин. /ppp profile add change-tcp-mss=yes dns-server=10.0.0.1 local-address=10.0.0.1 name=SSTP_Profile on-down=":local UserUpTime [/interface sstp-server get \$interface uptime];\r\ \n:local UserDomainName (\$user . \".domain.name\");\r\ \n/ip dns static remove [find name=\$UserDomainName];\r\ \n:log info (\$user . \" disconnect. Uptime connection - \" . \$UserUpTime);" on-up=\ ":local UserDomainName (\$user . \".domain.name\");\r\ \n/ip dns static add address=\$\"remote-address\" name=\$UserDomainName;\r\ \n:log info (\$user . \" connect with private IP address \" . \$\"remote-address\" . \" from \" . \$\"caller-id\");" use-encryption=yes /ip dhcp-server add address-pool=pool1 disabled=no interface=bridge1 lease-script=":local IPofLease \$leaseActIP;\r\ \n:if (\$leaseBound = 1) do={ \r\ \n:log info (\$leaseServerName . \" assigned \" . \$leaseActIP . \" to \" . \$leaseActMAC . \" - \" . ([/ip dhcp-server lease get [find active-address=\$leaseActIP] host-name]));\r\ \n/queue simple add name=\$IPofLease target=\$leaseActIP limit-at=10M/10M max-limit=10M/10M comment=(\$leaseActIP . \" - \" . \$leaseActMAC . \" - \" . ([/ip dhcp-server lease get [find active-address=\$leaseActIP] host-name]));\r\ \n} else={\r\ \n/queue simple remove [find name=\$IPofLease];\r\ \n:log info (\$leaseServerName . \" deassigned \" . \$leaseActIP . \" from \" . \$leaseActMAC);\r\ \n}" name=server1 Логовете и от PPP Profile и от DHSP Serve за записват с един и същ топик - script, info. Как да ги разделя да се записват в различни файлове, като в PPPProfile.txt да се записват само логовете от профила, а в dhcpserver.txt да се записват логовете само от сървъра? 13:05:20 dhcp,info server1 deassigned 192.168.88.51 from AA:AA:AA:AA:AA:AA 13:05:20 script,info server1 deassigned 192.168.88.51 from AA:AA:AA:AA:AA:AA - HUAWEI_Mate_20_Pro 13:05:20 system,info simple queue removed 13:20:12 sstp,ppp,info <sstp-USER1>: terminating... 13:20:12 sstp,ppp,info,account USER1 logged out from YY.YY.YY.YY 13:20:12 sstp,ppp,info <sstp-USER1>: disconnected 13:20:12 system,info static dns entry removed 13:20:12 script,info USER1 disconnect. Uptime connection - 00:26:59 Edited February 2, 2022 by DuMbh3aD Link to comment Share on other sites More sharing options...
Administrator 111111 Posted February 3, 2022 Administrator Report Share Posted February 3, 2022 Явно не се усещаш че ти пишем за различно нещо. Ползвай лога на системата не на сървисите. Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
DuMbh3aD Posted February 3, 2022 Author Report Share Posted February 3, 2022 6 hours ago, 111111 said: Явно не се усещаш че ти пишем за различно нещо. Най-вероятно сте прав. 6 hours ago, 111111 said: Ползвай лога на системата не на сървисите. Можи ли малко по-подробно да опишете как да се случи това? /system logging export # feb/03/2022 14:20:59 by RouterOS 6.49.2 # software id = CWFJ-R1SN # model = RB4011iGS+5HacQ2HnD /system logging action add disk-file-count=5 disk-file-name=PPPProfile disk-lines-per-file=2000 name=PPPProfile target=disk /system logging add action=PPPProfile topics=sstp,!packet,!debug Така не се записва информацията, която ми трябва. PPPProfile.0.txt Link to comment Share on other sites More sharing options...
Administrator 111111 Posted February 3, 2022 Administrator Report Share Posted February 3, 2022 Най-елементарно е да си направиш един лог в паметта, да му сложиш един префикс и да си ръчкаш наживо. Така тези с префикса ще си ги различаваш, така ще нацелиш нужното и когато си готов си го прехвърли в текстов лог който да се пише на някоя флашка. Харесай поста ^^^ Форумът е за взаимопомощ а не за свършване на чужда работа ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ Link to comment Share on other sites More sharing options...
DuMbh3aD Posted February 4, 2022 Author Report Share Posted February 4, 2022 Благодара за помощта. Добавих следните редове в On Up и On Down и нещата се получиха :local DateTime ([/system clock get date] . " - " . [/system clock get time] . " "); :local PPPProfileFile [/file get flash/PPPProfile.txt contents]; :local PPPProfileLog ($DateTime . $user . " disconnect. Uptime connection - " . $UserUpTime); /file set flash/PPPProfile.txt contents="$PPPProfileFile \n $PPPProfileLog"; Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now