|
楼主 |
发表于 2010-12-1 00:39:23
|
显示全部楼层
本帖最后由 qwert1388 于 2010-12-1 00:40 编辑
mxso 发表于 2010-11-30 23:23
你是想做提前的操作,这个我已经发过了
现在论坛搜不了你发过的
:local tz
:local prof
:local tj
:set tz 7
:set prof 4day
: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 0 8]]
:if ($pcom8>1) do={
:if ($pcom8>=$nyr && ($pcom8 - $nyr)<=$tz && $tzprof!=$prof) do={
/ppp secret set [/ppp secret find name=$pnam] profile="DQ";:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】即将到期,通知已下发!")
}}
:if ($nyr>=$pcom8 && ($nyr - $pcom8)>=$tj) do={
/ppp active remove [/ppp active find name=$pnam];
/ppp secret disable [/ppp secret find name=$pnam];:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】已过期停用并强制下线!")
}}} else={:log error ("用户【" . $pnam . "】的备注【".$pcom."】格式有误,请重新备注!")}
}
:log warning ("有效用户数【" . $ii . "】")
这个脚本测试过也不行 |
|