Jump to content

PPP Profile Scripts


DuMbh3aD

Recommended Posts

Здравейте,

Новак съм в писането на скриптове и някой неща не ги разбирам.

Опитвам се да си направя скрипт с който да следя продължителността на 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

След няколко часа успях да сътворя следното:

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

  • Administrator
/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 by JohnTRIVOLTA
Link to comment
Share on other sites

По този начин всичко с 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

  • Administrator
Преди 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 не се отразяват в лога

 

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Ще си задам въпроса по друг начин.

/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 by DuMbh3aD
Link to comment
Share on other sites

  • Administrator

Явно не се усещаш че ти пишем за различно нещо.
Ползвай лога на системата не на сървисите.

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

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

  • Administrator

Най-елементарно е да си направиш един лог в паметта, да му сложиш един префикс и да си ръчкаш наживо.
Така тези с префикса ще си ги различаваш, така ще нацелиш нужното и когато си готов си го прехвърли в текстов лог който да се пише на някоя флашка.
 

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Благодара за помощта.

Добавих следните редове в 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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.