Jump to content

Скрипт за "убиване" на неактивни pppoe потребители


Inkas

Recommended Posts

Здравейте колеги!

Имам една драма, която я мъча вече две-три седмици. Имам PPPoE сървър и проблема ми е със спирането на клиентите. Когато искам да спра някой потребител, "билинг-а" го disable-ва (през апи-то), но не го kill-ва от Active Connections. Понеже "билинга" не е писан от мен и едва ли на човека му се занимава да го преправя, според мен решението е да се направи един скрипт, който през 5мин (примерно) да следни да disable-нати потребители и ако са активни, да ги "убива". Някой може ли да помогне с подобен скрипт?

Link to comment
Share on other sites

  • Administrator

Use since

OpenBSD 3.x

FreeBSD 4.x

Centos 5.x Debian 3.x Ubuntu 7.x

Аз съм фен на OpenWRT.

 

Горчивината от лошото качество остава дълго след като е преминало удоволствието от ниската цена.

_____________________________

___|____|____|____|____|____|__

_|____|____|____|____|____|____

___|____|_ Удряй _|____|____|__

_|____|___ главата ___|____|____

___|____|_ си тук!! |____|____|__

_|____|____|____|____|____|____

___|____|____|____|____|____|__

Link to comment
Share on other sites

:log info Starting...
:local username
:local tmp1
:local pppuser
:local userinfo

:foreach file in=[/ppp active print as-value where service=pptp ] do={
   :set username ($file->"name")
   :log info "Cheking $username"
   :set tmp1 [/ppp secret print as-value where name=$username disabled=yes]
   :set pppuser [ :pick $tmp1 0 ]
   :if ( ($pppuser->"name") = $username ) do={
      :log info "Kill $username"
      :ppp active remove numbers=[/ppp active find where name=$username]
     }
}

 

 

Оправи само service=pptp, да е pppoe при теб.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Преди 1 час, byte написа:
:log info Starting...
:local username
:local tmp1
:local pppuser
:local userinfo

:foreach file in=[/ppp active print as-value where service=pptp ] do={
   :set username ($file->"name")
   :log info "Cheking $username"
   :set tmp1 [/ppp secret print as-value where name=$username disabled=yes]
   :set pppuser [ :pick $tmp1 0 ]
   :if ( ($pppuser->"name") = $username ) do={
      :log info "Kill $username"
      :ppp active remove numbers=[/ppp active find where name=$username]
     }
}

 

 

Оправи само service=pptp, да е pppoe при теб.

Благодаря! Точно това ми трябваше!

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.