ROS 5.x自动定时备份并发送到邮箱(实用)

时间:2023-03-09 14:32:10
ROS 5.x自动定时备份并发送到邮箱(实用)

博主使用ROS已经有很长一段时间了,但经常会忘记备份配置与数据库,加上ROS本身自带的User-Man数据库并不是非常稳定,1年中总会出现1-2次数据丢失的情况。所以费了一定功夫才找到真正可用自动备份并发送电邮的方法(我用的ROS版本为5.24和5.26,均可正常使用),现分享给大伙。

脚本如下:(需要按自己的电邮信息来设定)

#定义全局变量
:local from "您的邮箱"
:local user "邮箱账号"
:local password "邮箱密码"
:local to "您的邮箱(同第一行)"
#只需要更改cc 后""中为客户的邮箱即可
:local cc "接收者的邮箱"
:local address "123.125.50.133"
:local router "接收到的邮箱附件名"
#ROS 系统备份
/system backup save name=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ]);
#ROS UserMan数据库备份
/tool user-manager database save name=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ]); #延迟1秒,目的是文件已经备份好了,然后再执行下面的步骤,否则下面的步骤发现没有备份文件时报错,从而导致你的脚本失效
:delay ;
#把系统备份发送到邮箱
/tool e-mail send server=($address) port= cc=($cc) from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".backup") file=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".backup") body=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".backup");
#把Userman数据库备份发送到邮箱
/tool e-mail send server=($address) port= cc=($cc) from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".umb") file=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".umb") body=($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".umb");
#再次延迟20秒,目的是让上面的步骤即确保备份的文件都发送出去了再执行下面的删除操作
:delay ;
#删除刚才备份到ROS本地的文件(如果你空间足够、脚本执行每月/年才执行一次,你可以删除下面这三段脚本)
/file remove ($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".backup");
/file remove ($router."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ].".umb");

方法2:
需要自己先在Tools-Email中配置Email服务器:(测试备份正常,但发邮件似乎有点问题,时好时坏)

#定义参数
:global to "test@qq.com"
:global who "MikroTik"
:global naming ($who."-".[:pick [/system clock get date] ].[:pick [/system clock get date] ].[:pick [/system clock get date] ])
#备份
/system backup save name=$naming;
/export file=$naming;
/tool user-manager database save name=$naming;
#发送邮件
/tool e-mail send to=$to subject=($naming . "Backup") file=($naming . ".backup"); :delay ;
/tool e-mail send to=$to subject=($naming . "rsc") file=($naming . ".rsc"); :delay ;
/tool e-mail send to=$to subject=($naming . "umb") file=($naming . ".umb"); :delay ;
#删除备份
/file rem [/file find name=($naming . ".backup")];
/file rem [/file find name=($naming . ".rsc")];
/file rem [/file find name=($naming . ".umb")];
:log info ("System Backup emailed at " . [/sys cl get time] . " " . [/sys cl get date])