那啥,最近在写一些没有卵用的技能。实际上iN也没安什么好心。原因在于实际上想通过这些没有用的技能让大家知道网...
又是没什么用的技能,但除了没什么用之外,你如果知道了会有重新认知世界的感觉。这是昨天的留言,其实坦然的说,很...
之前在给大家讲了很多没用的Router OS上的技能,这些东西其实对于大家来说真的都没有什么太大意义,只是让...
那啥,昨天没更新内容是因为前天晚上搞程序把Router OS的路由器给玩崩了。看上图,明明要去这里却被路由器指向了那里,搞不明白的还以为互联网两大巨头合并了呢。折腾了快半天的时间,Router OS的路由器恢复。这时候想了一个问题,干嘛我不给路由器的设置备个份呢?iN的路由器从2020年架设起来其实就没什么大动。期间就简单的修修补补的改变一些设置。以至于昨天路由器崩了之后大大小小几十个设置项目都得重新设置一遍,有的时候这的确很让人觉得折手。看了路由器的存储空间,里面最晚的备份项目也是三年前的了。几乎不能恢复,重设排查等一系列操作还不如从头弄个一个裸金属设置呢。设置完也是下午3点多了,那么有了这次教训,还是要讨论下备份的必要性了。一般的来说一个路由器基本上设置后就不会再做修改了,通常可以稳定的运行几年甚至十几年,备份在路由器上的价值并不是特别大。但对于家庭用户来说,我们的各种修改和配置几乎是不断的。有的时候崩溃性事件的发生还是更依赖于备份的配置回滚。在Router OS上做备份这个操作很简单,只需要直接在命令行运行/system backup 就可以在文件存储区生成当前系统的备份。或者用 /export命令也可以将所有的设置参数导出成脚本配置文件。只不过,这两个命令都需要手动的执行。虽然Router OS中有计划任务的设定。我们也可以为Router OS生成基于时间戳的备份任务。但通常路由器的存储空间比较有限,这就会导致过一段时间,备份文件会填满存储空间,回头手动删除其实也是很麻烦和耗费精力的事情。那么怎么做呢?写脚本来处理,这个处理有几个要点可以和大家说说。第一、为了避免路由器内的备份文件充满存储空间,因此采用了覆盖性的备份机制。只备份一周内的路由器设置,每个weekday的设置进行相互覆盖。最终在路由器上只会生成AutoBackup-0~6这七个备份文件。当然了,我们可以在脚本里设定 :local day daynum % 7,这个7其实就是备份的数,会返回0-6之间的整数,如果想设置半个月的话,可以将 7 换成15。再改改后面的程序就可以了第二、为了让0~6和真正的星期几进行对应,这就涉及到了日期-星期算法,不过Router OS的脚本里面没有这个现成的函数,所以自己写一个,这也就是weekday (($dayNum + 6 + ((13 * ($monthNum + 1)) / 5) + $K + ($K / 4) + ($J / 4) + (5 * $J)) % 7)生成weekday的机制了第三、就是覆盖在ROUTER OS中backup生成的文件如果之前不存在的话会直接生成,如果之前存在的话会直接覆盖。所以利用这个机制和上面的算法我们就可以保证文件区域最多只有7个文件存在,这样就可以免去日后不断的删除备份文件的困扰下面就是备份的整个脚本了,在系统-脚本中保存一下就可,iN在这里给脚本起了一个名字叫做AutoBackup:local date [/system clock get date] :local firstDashPos [:find $date "-"] :local secondDashPos [:find $date "-" ($firstDashPos + 1)] :local year [:pick $date 0 $firstDashPos] :local month [:pick $date ($firstDashPos + 1) $secondDashPos] :local day [:pick $date ($secondDashPos + 1) [:len $date]] :local yearNum [:tonum $year] :local monthNum [:tonum $month] :local dayNum [:tonum $day] :if ($monthNum < 3) do={ :set yearNum ($yearNum - 1) :set monthNum ($monthNum + 12) } :local K ($yearNum % 100) :local J ($yearNum / 100) :local weekday (($dayNum + 6 + ((13 * ($monthNum + 1)) / 5) + $K + ($K / 4) + ($J / 4) + (5 * $J)) % 7) :local backupName ("AutoBackup-" . $weekday . ".backup") :log info ("Backup file name is: " . $backupName) /system backup save name=$backupName 今天早起看了下,已经在文件区域生成了两个备份文件,一个是昨天调试的,第二个是自动生成的。对应的日期也是 0代表周日,6代表昨天的周六、明天早上还会生成一个-1代表周一的备份文件。脚本做好之后,你要做的就是在计划任务中调用这个脚本。路径系统-计划任务在任务窗口中设定开始时间和执行间隔就可以让脚本程序在计划的时间内运行起来在On Event中输入脚本名称“AutoBackup”。这件事就算是做完了。这只备份方法没啥用处,比较符合咱们“无用技”的栏目特色。但可以保证Router OS用户只要路由器硬件不坏掉,总是有机会恢复一周内任意天的路由器配置信息,可以图个安心。那如果路由器坏掉了都登录不进去了咋办?这些配置备份信息就废掉了吗?其实还可在脚本中加一条/tool sendmail 把当天的配置文件发到自己邮箱里面去。当然了,这个对于iN来说必要就不大,于是没写进去。如果你觉得每天都会在电子邮件里面收到配置文件很烦,也可以酌情的用if判断,例如 if weekday= 0 ,只发送周日的备份文件。
想不到临时起意做了个无用技的集合,最近写了这么多篇了。但对于网络来说,这个集合目前还是很皮毛的。毕竟,iN很...
有的时候看大家就一个计算机上的问题争吵是很有意思的事情,例如在Windows 12 的文章里面就有这样的回复...
一个粉丝提到了Router OS没有中文界面:这对于初级使用Router OS的用户来说的确是一个硬伤,但是...
继续昨天开局的系列文章~现在,只能假定你已经有了一个Router OS的路由器,而且是MikroTik的,今...
前面提到了软路由实际上对普通用户来说是一种无用技能。但还是要写文章,因此咱们从选购一台MikroTik路由器...
他不说,我都忘记了:最近各种忙活,所以文章写的就比较随性了。这就导致之前很多想做的系列都搁置了。既然粉丝催更...
关注数量超出限制,
请先删除部分内容再尝试
已收藏
去我的收藏夹 >
已取消收藏
去我的收藏夹 >