定时备份RouterOS配置并上传到FTP服务器

Published on
21

起因

前段时间RDS数据库过期,我忘记备份,导致本博客挂了一个多月
本来以为本博客死透了,结果在Wayback Machine里面找到了博客的存档(算是之前写了点有用的文章积下的功德吧)
成功复活本博客后痛定思痛,以后要把所有能备份的东西都备份了
首先先把路由器系统备份下,要不然辛辛苦苦配置的防火墙规则没了就GG了

操作

  1. 创建脚本
    在【System】-【Scripts】中新建一个脚本
    A4C1999B-715E-41E2-870D-8680D6982FF1.png
    Name中填入自定义脚本名,第二步需要用
    Source内填入以下内容

    :local date [/system clock get date]
    :local year [:pick $date 0 4];
    :local month [:pick $date 5 7];
    :local day [:pick $date 8 10];
    
    :local time [/system clock get time]
    :local hour   [:pick $time 0 2]
    :local minute [:pick $time 3 5]
    
    :local filename ("/MikroTik-".$year.$month.$day."-".$hour.$minute)
    :local fullfilename ($filename.".backup")
    /system backup save name=($filename)
    /tool fetch address=<FTP服务器IP> upload=yes user=<FTP服务器账号> password=<FTP服务器密码> port=21 mode=ftp src-path=($fullfilename) dst-path=("<FTP服务器路径>".$fullfilename)
    /delay delay-time=2s
    /file/remove [:pick ($fullfilename) 1 999]
    

    其中倒数第三行里有四个配置项,具体含义如下
    <FTP服务器IP>:NAS或其他FTP服务器IP,例如10.0.0.20
    <FTP服务器账号>:NAS或其他FTP服务器账号
    <FTP服务器密码>:NAS或其他FTP服务器密码
    <FTP服务器路径>:NAS或其他FTP服务器路径,例如/backup/routeros/

    群晖的FTP功能需要手动打开,路径为:共享文件夹名+后续路径

    最后两行是删除刚刚生成的备份文件,如果需要再RouterOS内保留的话,删掉最后两行即可

  2. 创建定时任务
    在【System】-【Scheduler】中新建一个定时任务
    B54548B6-70AF-4A5C-BBF2-6F0D1415D49D.png
    Name中填入自定义定时任务名,任意填写
    On Event内填入一下内容

    :execute script="<脚本名>"
    

    其中<脚本名>为第一步自定义脚本名称

  3. 测试
    9D92CBDA-543C-4CDB-A084-62BEB007B023.png
    上传成功,搞定!

参考

RouterOS 脚本实现每日自动备份配置并上传到NAS
MikroTik RouterOS 备份配置及其自动化
Scripting - RouterOS - MikroTik Documentation