|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
#脚本制定
:local tz
:local prof
:local tj
:set tz 1
:set prof 2day
:set tj 2
#tz为提前发到期通知的天数
#比如:今天是20101213,如果设置的tz为2天,那么20101214 20101215 这2个备注将下发通知
#如果tj为1 那么20101213的不停机.20101212的停机,如果设置为0,那么20101213停机
#prof为提前发送到期通知的模板
#tj为到期后几天停用用户账号,0为到期即停机
:local nyr [/system clock get date]
#年月日 dec/12/2012
: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]
#备注
:set pcom8 [:pick $pcom ([:find $pcom "["]+1) [:find $pcom "]"]]
#处理备注
:local pnam [get $puse name]
#账号
:local tzprof [get $puse profile]
#配置文件
:set ii($ii + 1)
# ii自加1
:if ($pcom8!= "" && $pcom8!="admin") do={
#开始比较判断,备注不为空 也不为 admin
:if ([:len $pcom8]<8) do={
#长度判断
:log error ("账号【".$pnam."】日期备注足8位,现备注日期:【". $pcom8 ."】");:beep frequency=2080;
} else={
#转成数字
:if ($pcom8>1) do={
#如果大于1
:if ($pcom8>=$nyr && ($pcom8 - $nyr)<=$tz && tzprof!=$prof) do={
#如果大于等于当前日期 并且 过期天数($pnam8 - $nyr)小于等于通知时间,同时配置文件不等于$prof)
/ppp secret set [/ppp secret find name=$pnam] profile=$prof;:set ii ($ii -1)
#设置pppoe账号的配置文件为$prof,然后ii减一
:log warning ("用户【". $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 warnig (有效用户数【" . $ii ."】") |
|