hackvey 发表于 2012-2-10 12:09:33

请大家帮我看看这个脚本为什么不能用?到底那里错了?

: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
#年月日 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 do={
#查找没禁用的账号
:local pcom
#备注
:set pcom8 [:pick $pcom ([:find $pcom "["]+1) [:find $pcom "]"]]
#处理备注
:local pnam
#账号
:local tzprof
#配置文件

: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 profile=$prof;:set ii ($ii -1)
#设置pppoe账号的配置文件为$prof,然后ii减一


:log warning ("用户【". $pnam ."】已到期,通知已下发!")
}}
:if ($nyr>=$pcom8 && ($nyr - $pcom8)>$tj) do={
#如果已经过期了,则强制下线并下发通知

/ppp active remove ;
/ppp secret disable ;:set ii ($ii -1)
:log error ("用户【" . $pnam . "】已过期停用并强制下线!")
}}} else={:log error ("用户【" . $pnam . "】的备注【".$pcom."】格式有误,请重新备注! ")}
}
:log warning (有效用户数【" . $ii ."】")


请大家帮忙我看看,这个脚本到底那里错了?我在ROS3.30和ROS5.12里面都不能用。
页: [1]
查看完整版本: 请大家帮我看看这个脚本为什么不能用?到底那里错了?