|  | 
 
 发表于 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 . "】")
 | 
 |