251884074 发表于 2012-2-29 19:03:30

到期自动停号 修改那些文件

本帖最后由 251884074 于 2012-2-29 20:35 编辑

#脚本制作
:local tz
:local prof
:local tj
:set tz 1
:set prof 2day
:set tj 2
#tz代表提前发送到期通知的天数
#举个例子 比如:今天是20110921 如果我们设置的通知天数为2天 那么2011092220110923 这两个备注将下发通知
#如果我们设置的停机天数为1天,那么20110921不停机20110920停机 如果设置为0 那么20110921停机
#prof为提前发送到期通知的模板
#tj为到期后几天停用用户账号0则为到期就停机 没有停机通知
:local nyr
#年 月 日 2011/Sep/21
: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={
#如果大于等于当前日期 并其 过期天数($pcom8 - $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 . "】的备注【". $pnam."】格式有误,请重新备注!")}
}
:log warning("有效用户数【" . $ii . " 】")

这应该是44777185的 哈哈不知道在那地方修改 有知道那为大哥给说下
页: [1]
查看完整版本: 到期自动停号 修改那些文件