学习教程
ROS软路由入门到精通教程
ROS自动备份发送到邮箱 繁华 发表于 2014-3-4 16:35
学习教程
ROS软路由入门到精通教程
发QQ群小心被封。
{
#定义全局变量
:local from "**062245@qq.com"
:local user "**3062245@qq.com"#发件人邮箱帐号
:local password "******" #发件人邮箱密码
:local to "**3062245@qq.com"
:local smtp "smtp.qq.com"
:local router "1500"#设置路由器名字,收到邮件时,好区分是哪台路由器。
:local address
:set address [:resolve $smtp]
#ROS 系统备份
/system backup save name=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6]);
#导出所有配置
/export file=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6]);
#延迟1秒,目的是文件已经备份好了,然后再执行下面的步骤,否则下面的步骤发现没有备份文件时报错,从而导致你的脚本失效
:delay 3;
#把系统备份发送到邮箱
/tool e-mail send server=($address) port=25 from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".backup") file=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".backup") body=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".backup");
#把配置文档发送到邮箱
/tool e-mail send server=($address) port=25 from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".rsc") file=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".rsc") body=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".rsc");
#把用户数据库文档发送到邮箱(Exchange好像不支持接收.umb)
/tool e-mail send server=($address) port=25 from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".umb") file=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".umb") body=($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".umb");
#再次延迟20秒,目的是让上面的步骤即确保备份的文件都发送出去了再执行下面的删除操作
:delay 20;
#删除刚才备份到ROS本地的文件(如果你空间足够、脚本执行每月/年才执行一次,你可以删除下面这三段脚本)
/file remove ($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".backup");
/file remove ($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".rsc");
/file remove ($router."-".[:pick 7 11].[:pick 0 3].[:pick 4 6].".umb");
本帖最后由 cspm333 于 2021-2-3 13:52 编辑
做"信件已成功寄出"的確認,遇失敗則重新補寄直至成功寄出才中止。
避免遇上圖警示的寄件錯誤,而耽誤了任何一天的備份。
:local mail "abc1234@mail.com"
:local Name
:local Date
:local Time
:local yy [:pick $Date 7 11]
:local mm [:find 0,jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $Date 0 3]]
:if ($mm<10) do={:set mm "0$mm"}
:local dd [:pick $Date 4 6]
:local title
:local backup "$Name_Backup_[$yy-$mm-$dd].backup"
/system backup save name=$backup ; :delay 3s
:local fin no
:local send yes
:do {
:if ($send) do={
:set Time
:set title "$Name -- RouterOS Backup $yy/$mm/$dd $Time"
/tool e-mail send to=$mail subject=$title file=$backup
:set send no
}
:delay 11s
:foreach i in= do={
:set fin (~"info")
:set send (~"error")
}
} while=(!$fin)
:log warning "System Backup emailed at $yy/$mm/$dd $Time (系統備份已由email寄出)"
/file remove $backup
页:
[1]