星期一, 12月 30, 2013

RouterOS 自動備份並email到gmail

本Script是引用電腦茶包Blog並加以修改,原作者是將Routeros的備份寄至hinet,因為個人的需求需寄到gmail,因此略加修改。
####################################################
#Script 引用電腦茶包Blog
#http://www.minitw.com/routeros/automatic-backup-routeros-and-email-send-backup-file.htm
#Script Name:backup_send_gmail
#-----------------------------------------
#SMTP伺服器位置
:local SMTP "smtp.gmail.com"

#寄件人
:local MailFrom "kuoabc@gmail.com"

#收件人
:local MailTo "kuoabc@gmail.com"

#寄出後是否刪除已存檔的Log(/file裡的檔案)
#0=保留 1=刪除

:local DeleteLogFile 1

:local BackupFileName
:set BackupFileName ([/system identity get name] . "_Backup-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
 /system backup save name=($BackupFileName);
:delay 10;

/tool e-mail set from=$MailFrom;
/tool e-mail set address=[:resolve $SMTP];

/tool e-mail send to=$MailTo subject=([/system identity get name] . " -- RouterOS Backup " . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]) file=[$BackupFileName] start-tls=yes ;

:delay 10;

:if ($DeleteLogFile =1) do={
 /file rem [/file find name=($BackupFileName)];
 }

:log info ("System Backup emailed at " . [/sys cl get time] . " " . [/sys cl get date] . " (系統備份已由email寄出)");

#---
#########################################################

加入自動備份的步驟:
一、到Tools->Email,加入Email Settings,
Server:74.125.129.109,port:587
From:您的gmail,如abc@gmail.com
User:的gmail帳號,如abc
Password:為您的gmail密碼

因為gmail支援SMTP的TLS 加密認證(參考gmail說明),gmail的smtp伺服器為smtp.gmail.com,port為587,當時解析的IP為74.125.129.109,當然您也可以在server欄位填入smtp.gmail.com

二、此時設定完後,可以按【Send Email】並簡單輸入寄件資料測試是否可由Routeros將信寄出,記得TLS要打勾。
Address:
Port:
User:
Password:
To:
From:
以上六個欄位與前面一樣即可

Subject:測試的標題
Body:測試的內容

以上設定好後再按【Send Email】,接著登入到Gmail收信看看。

三、  登入Gmail若有收到測試信,就可接下一步加入自動備份的Script。



四、到System->Script,按【+】加入一個Script Name,這邊我們用backup_send_gmail,接著再將最上面的Script中紅色的字樣(:local SMTP可以不改) ,寄件人,收件人及是否在寄出備份檔後刪除這三個項目,修改完後,貼到Source的欄位內,再按【Apply】,最後按【Run Script】測試是否能成功的備份及寄出。



五、這時可以到【Files】看是否有新增一個備份檔,若還未寄出則檔案應該還在,若寄出後則可到【Log】中看到成功寄出的訊息。





六、到gmail看是否有收到自動寄出的備份檔



七、成功寄出後,我們再將這個Script加到我們的排程當中,到System->Scheduler->【+】(參考RouterOS Scheduler說明)。
Name:自訂
Start Date:  第一次執行Script的日期
Start Time:第一次執行Script的時間
Interval:間隔時間,若此處設0s,則代表僅執行一次(在Start time的時候),否則就會依interval的值間隔執行,這邊我們填1d,代表從start time起,每間隔一天的時間就會自動執行。
On Event:裡面要填您要執行的Script名稱,因為我們的script是命名為backup_send_gmail,所以這裡要填backup_send_gmail
 最後按apply就大功告成了!