основываясь на wiki создал скрипт. Тестировал на v5.6 и 5.22. Должно работать на 5.X
Для начала надо настроить параметры SMTP сервера. Пример будет для gmail.com
Не забываем поменять на свои значения mikrotik@gmail.com, your_password, your_account@gmail.com
Bash |copy code |?
1 /tool e-mail
2 set address=173.194.65.108 from=mikrotik@gmail.com password=\3 your_password starttls=yes user=your_account@gmail.com4
Скрипт делает
- удаляет старые бекапы
- создае файл бэкапа *.backup
- отправляет сообщение с прикреплённым к нему файлом бэкапа на заданный e-mail адрес
- создают файл скрипта настроек *.rsc по команде export
- отправляет сообщение с прикреплённым к нему файлом скрипта настроек на заданный e-mail адрес
- если версия RouterOS выше 5.12, создается файл скрипта настроек *.rsc по команде export compact и отправляется на тот же e-mail
Параллельно в системном журнале производится логирование этапов работы запущенного скрипта.
К сожалению RouterOS пока не умеет прикреплять к сообщению более одного файла за раз, поэтому каждый файл приходится отправлять индивидуально.
Bash |copy code |?
01 {
02 :log info "Starting Backup Script...";
03 :local sysname [/system identity get name];04 :local sysver [/system package get system version];05 :log info "Flushing DNS cache...";
06 #/ip dns cache flush;
07 :delay 2;
08 :log info "Deleting last Backups...";
09 :foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \10 "$sysname-backup-"]]!="nil") do={/file remove $i}};11 :delay 2;
12 :local smtpserv [:resolve "smtp.gmail.com"];13 :local Eaccount "your_account@gmail.com";
14 /tool e-mail set address=$smtpserv;15 16 :local backupfile ("$sysname-backup-" . \17 [:pick [/system clock get date] 7 11] . [:pick [/system \18 clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");19 :log info "Creating new Full Backup file...";
20 /system backup save name=$backupfile;21 :delay 2;
22 :log info "Sending Full Backup file via E-mail...";
23 24 /tool e-mail send to=$Eaccount tls=yes file="$backupfile" \25 subject=("$sysname Full Backup (" . [/system clock get date] . ")") \26 body=("$sysname full Backup file see in attachment.\nRouterOS version: \27 $sysver\nTime and Date stamp: " . [/system clock get time] . " " . \28 [/system clock get date]);29 30 :delay 5;
31 :local exportfile ("$sysname-backup-" . \32 [:pick [/system clock get date] 7 11] . [:pick [/system \33 clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");34 :log info "Creating new Setup Script file...";
35 /export file=$exportfile;36 :delay 2;
37 :log info "Sending Setup Script file via E-mail...";
38 39 /tool e-mail send to=$Eaccount tls=yes file=$exportfile \40 subject=("$sysname Setup Script Backup (" . [/system clock get date] . \41 ")") body=("$sysname Setup Script file see in attachment.\nRouterOS \42 version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \43 " . [/system clock get date]);44 :delay 5;
45 46 :if ( [/system package get system version] >= "5.12" ) do={47 :local exportcompactfile ("$sysname-backup-compact-" . \48 [:pick [/system clock get date] 7 11] . [:pick [/system \49 clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");50 :log info "Creating new Setup Script Compact file...";
51 /export compact file=$exportcompactfile;52 :delay 2;
53 :log info "Sending Setup Script Compact file via E-mail...";
54 55 /tool e-mail send to=$Eaccount tls=yes file=$exportcompactfile \56 subject=("$sysname Setup ScriptCompact Backup (" . [/system clock get date] . \57 ")") body=("$sysname Setup Script Compact file see in attachment.\nRouterOS \58 version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \59 " . [/system clock get date]);60 :delay 5;
61 }
62 63 :log info "All System Backups emailed successfully.\nBackuping completed.";
64 }