找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8431|回复: 10

[脚本] 关于“lsdeng ”的“谁能帮我写个ROS充值脚本支持3.30以上的?”这样应该就可以解决

[复制链接]
发表于 2011-11-10 15:08:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 lzw83 于 2011-11-11 10:23 编辑

关于“lsdeng ”的“谁能帮我写个ros充值脚本支持3.30以上的?”
http://bbs.routerclub.com/forum. ... p;extra=&page=1
比起铜板,我理喜欢版主们给我加点积分。挣积分太难了,灌水还得小心被扣。老大们给点分吧

代码如下,在原来代码的PPP处理开始后面加。其实不放在第一个循环里应该也是可以的,还能减少运行时间。这里是判断2位数,所以最多也就99天,改改变量参数就可以100天,365天了。如有不足和错误请各位老大指点,虚心受教

粗心大意,取变量值是忘了用$,还有日期也没处理好,现在已经重新修改好了
PPPoe.JPG
#PPP处理开始
/ppp secret
:foreach i in=[find comment!=""] do={
#找出含有“use”的已拨帐号,并根据其后面2位数判断出此帐号到期时间,并修改帐号名称。如:当前日期为“20111109”,帐号为

“use30test333”,首次拨号成功后,帐号被改为“test333”,备注为“test333[20111109+30]到期”
        :foreach ii in=[/ppp active find name~"use"] do={
                :global zh [/ppp active get $ii name]
                :global zhL [:len $zh]
                :global nzh [:pick $zh 5 $zhL]
                :log warning ("帐号:" . $zh .",初次登陆激活并更改帐号为:" . $nzh)
                /ppp secret set [/ppp secret find name~$zh] name=$nzh \
                comment=($nzh . "[" . ($Year+1) . ($Month+1) . ($Day+1) . "+" . [:pick $zh 3 5] . "]到期")
        }

:set Ccomment [get $i comment];:set lc [:find $Ccomment "["];:set rc [:find $Ccomment "]"]

评分

参与人数 1铜板 +6 收起 理由
9939781 + 6

查看全部评分

routeros
发表于 2011-11-10 21:43:50 | 显示全部楼层
在此非常感谢lzw83!

您是在ros那个版本测试呀? 我在ros4.17  没有测试成功!
routeros
回复

使用道具 举报

发表于 2011-11-10 21:55:15 | 显示全部楼层
帮顶。谢谢分享。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-11-10 22:38:12 | 显示全部楼层
routeros
回复

使用道具 举报

发表于 2011-11-10 23:00:39 | 显示全部楼层
呵呵,似乎 3.30 以上都差不多!谢了!
routeros
回复

使用道具 举报

发表于 2011-11-11 08:57:53 | 显示全部楼层
学习了。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-11-11 10:18:58 | 显示全部楼层
lsdeng 发表于 2011-11-10 21:43
在此非常感谢lzw83!

您是在ros那个版本测试呀? 我在ros4.17  没有测试成功!

已经修改好了,而且在5.7里测试过也成功(只是在你给的代码基础上测试了我写的那一段代码)
routeros
回复

使用道具 举报

发表于 2011-11-13 00:04:50 | 显示全部楼层
谢谢了!我也修改ok了 在用还没有发现很大问题。就是ExpAuto 脚本太耗CPU  我正在简化
routeros
回复

使用道具 举报

发表于 2011-11-13 04:22:50 | 显示全部楼层
lsdeng 发表于 2011-11-13 00:04
谢谢了!我也修改ok了 在用还没有发现很大问题。就是ExpAuto 脚本太耗CPU  我正在简化

扯蛋。。。
routeros
回复

使用道具 举报

 楼主| 发表于 2011-11-13 09:01:38 | 显示全部楼层

老大此话何解?
至于说一个脚本耗CPU,一般都是循环语句造成的,特别是死循环
routeros
回复

使用道具 举报

发表于 2011-11-16 19:51:20 | 显示全部楼层
lzw83 发表于 2011-11-13 09:01
老大此话何解?
至于说一个脚本耗CPU,一般都是循环语句造成的,特别是死循环

他针对的是我。

虽然我不懂写脚本。慢看琢磨分析还勉强。
  1. :local Date [/system clock get date];:local Year ([:pick $Date 7 11]-1)
  2. :local Month ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $Date 0 3]])
  3. :local Day [:pick $Date 4 6];:if ([:pick $Date 4 5] = 0) do={:set Day [:pick $Date 5 6]};:set Day ($Day-1)
  4. :local leapyear 0,31,59,90,120,151,181,212,243,273,304,334,0,31,60,91,121,152,182,213,244,274,305,335
  5. :global Today ($Year*365+$Year/4);:if (($Year-$Year/4*4) != 3) do={:set Today ($Today+[:pick $leapyear $Month]+$Day)} else={:set Today ($Today+[:pick $leapyear ($Month+12)]+$Day)}
  6. :local usname;:local uspfl;:local Ccomment;:local lc;:local rc;:local Exp;:local js;:local pcl;:local CYear;:local CMonth;:local CDay;:local CToday

  7. #PPP处理开始
  8. /ppp sec
  9.         :foreach ii in=[/ppp active find name~"use"] do={
  10.                 :local zh [/ppp active get $ii name]
  11.                 :local zhL [:len zh]
  12.                 :local nzh [:pick $zh 5 [:len $zh]]
  13. #               :log warning ("帐号:" . zh .",初次登陆激活并更改帐号为:" . nzh)
  14.                 set [/ppp secret find name~$zh] name=$nzh \
  15.                 comment=($nzh . "[" . $Year+1 . $Month+1 . [:pick [/system clock get date] 4 6] . "+" . [:pick $zh 3 5] . "]到期")
  16.         }


  17. #PPP处理结束
复制代码
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-24 07:55 , Processed in 0.086341 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表