博主使用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] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6]); #ROS UserMan數據庫備份 /tool user-manager database save name=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6]); #延遲1秒,目的是文件已經備份好了,然后再執行下面的步驟,否則下面的步驟發現沒有備份文件時報錯,從而導致你的腳本失效 :delay 1; #把系統備份發送到郵箱 /tool e-mail send server=($address) port=25 cc=($cc) from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".backup") file=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".backup") body=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".backup"); #把Userman數據庫備份發送到郵箱 /tool e-mail send server=($address) port=25 cc=($cc) from=($from) user=($user) password=($password) to=($to) subject=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".umb") file=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".umb") body=($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".umb"); #再次延遲20秒,目的是讓上面的步驟即確保備份的文件都發送出去了再執行下面的刪除操作 :delay 20; #刪除剛才備份到ROS本地的文件(如果你空間足夠、腳本執行每月/年才執行一次,你可以刪除下面這三段腳本) /file remove ($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".backup"); /file remove ($router."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6].".umb");
方法2:
需要自己先在Tools-Email中配置Email服務器:(測試備份正常,但發郵件似乎有點問題,時好時壞)
#定義參數 :global to "test@qq.com" :global who "MikroTik" :global naming ($who."-".[:pick [/system clock get date] 7 11].[:pick [/system clock get date] 0 3].[:pick [/system clock get date] 4 6]) #備份 /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 15; /tool e-mail send to=$to subject=($naming . "rsc") file=($naming . ".rsc"); :delay 15; /tool e-mail send to=$to subject=($naming . "umb") file=($naming . ".umb"); :delay 15; #刪除備份 /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])
