|
发表于 2014-9-21 16:59:23
|
显示全部楼层
网上找来的
测试可用好用
:local tz
:local prof
:local tj
:set tz 3
:set prof Tian_3
:set tj 0
#tz为提前发送到期通知的天数
#prof为提前发送到期通知的模板
#tj为到期后几天停用用户账号,0为到期即停机
:local nyr [/system clock get date]
:local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $nyr 0 3]]+1)
#查到当前月份
:if ($yy<10) do={:set yy (0 . $yy)}
:set nyr ([:pick $nyr 7 11] . $yy . [:pick $nyr 4 6])
:local ii "0"
:local pcom8 ""
/ppp secret
:foreach puse in [find disabled=no] do={
:local pcom [get $puse comment]
:local pnam [get $puse name]
:local tzprof [get $puse profile]
:set ii ($ii + 1)
:if ($pcom!="" && $pcom!="admin") do={
:if ([:len $pcom]<8) do={
:log error ("账号【".$pnam."】日期备注不足8位,现备注日期:【" . $pcom . "】");:beep frequency=2080;
} else={
:set pcom8 [:tonum [:pick $pcom ([:find $pcom "["]+1) [:find $pcom "]"]]]
:if ($pcom8>1) do={
:if ($pcom8>=$nyr && ($pcom8 - $nyr)<=$tz && $tzprof!=$prof) do={
/ppp secret set [/ppp secret find name=$pnam] profile=$prof;:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】即将到期,通知已下发!")
}}
:if ($nyr>=$pcom8 && ($nyr - $pcom8)>=$tj) do={
/ppp active remove [/ppp active find name=$pnam];
/ppp secret set profile=QianFei [/ppp secret find name=$pnam];:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】已过期停用并强制下线!")
}}} else={:log error ("用户【" . $pnam . "】的备注【".$pcom."】格式有误,请重新备注!")}
}
:log warning ("有效用户数【" . $ii . "】") |
|