Взято тут, спасибо тебе, добрый человек! При переходе на седьмую версию сэкономил кучу времени.
ОБНОВЛЕНО. Первоисточник скрипта нынче недоступен. К несчастью, скрипт я скопипастил довольно по-хамски, сломав разметку. Не думал, что первоисточник схлопнется. Теперь сам и исправляю.
Версия ROS 7.10+ благополучно работает на 7.18.2.
{
:log info "starting backup process...";
:local sysver [/system package get routeros version];
:local sysname [/system identity get name];
:local rbmodel [/system router get model];
:local rbuptime [/system resource get uptime];
/system clock
:local date [get date];
:log info "flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "deleting latest backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname_"]]!="nil") do={/file remove $i}};
:delay 2;
:log info "creating backup file...";
:local backupfile ("$sysname_" . "$date" . "_v$sysver" . ".backup");
/system backup save name=$backupfile;
:delay 2;
:log info "creating script file...";
:local exportfile ("$sysname_" . "$date" . "_v$sysver" . ".rsc");
/export show-sensitive file=$exportfile;
:delay 2;
:local files ($backupfile,$exportfile);
:log info "sending files via email...";
/tool e-mail send to=mymail@mail.ru file=$files subject=("[MB] $sysname $rbmodel backup (" . [/system clock get date] . ")") body=("$sysname backup files are in the attachment.\nTime and Date: " . [/system clock get time] . " " . [/system clock get date] . "\n\nModel: $rbmodel\nRouterOS: $sysver\nUptime: $rbuptime");
:delay 4;
:log info "...system backup completed";
}
А этот скрипт взят на MikroTik Wiki, но на ROS 7.10+ он не работает без дополнительных правок.
Поправил:
#Comments: скрипт выполняет резервное копирование двумя способами и отправляет оба файла по почте
{
#Create Variables
:local smtpserv [:resolve "smtp.mail.ru"];
:local EaccountFrom "frommail@mail.ru";
:local EaccountTo "tomail@mail.ru";
:local pass "MyPassword";
#
:log info "Starting Backup Script...";
:local sysname [/system identity get name];
:local sysver [/system package get routeros version];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "Deleting last Backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname-backup-"]]!="nil") do={/file remove $i}};
:delay 2;
#Create and E-mail Full Backup
:local backupfile ("$sysname-backup-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
:log info "Creating new Full Backup file...";
/system backup save name=$backupfile;
:delay 2;
:log info "Sending Full Backup file via E-mail...";
/tool e-mail send from=$EaccountFrom to=$EaccountTo server=$smtpserv port=587 user=$EaccountFrom password=$pass tls=starttls \
file=$backupfile subject=("$sysname Full Backup (" . [/system clock get date] . ")") \
body=("$sysname full Backup file see in attachment. \nRouterOS version: $sysver.");
:delay 5;
#Create and E-mail Setup Backup
:local exportfile ("$sysname-backup-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");
:log info "Creating new Setup Script file...";
/export file=$exportfile;
:delay 2;
:log info "Sending Setup Script file via E-mail...";
/tool e-mail send from=$EaccountFrom to=$EaccountTo server=$smtpserv port=587 user=$EaccountFrom password=$pass tls=starttls \
file=$exportfile subject=("$sysname Setup Script Backup (" . [/system clock get date] . ")") \
body=("$sysname Setup Script file see in attachment. \nRouterOS version: $sysver.");
:delay 5;
#Finish
:log info "All System Backups emailed successfully.\nBackuping completed.";
}
Битые скрипты пока оставляю внизу.
ROS 7.10+
{ :log info "starting backup process..."; :local sysver [/system package get routeros version]; :local sysname [/system identity get name]; :local rbmodel [/system router get model]; :local rbuptime [/system resource get uptime]; /system clock :local date [get date]; :log info "flushing DNS cache..."; /ip dns cache flush; :delay 2; :log info "deleting latest backups..."; :foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname_"]]!="nil") do={/file remove $i}}; :delay 2; :log info "creating backup file..."; :local backupfile ("$sysname_" . "$date" . "_v$sysver" . ".backup"); /system backup save name=$backupfile; :delay 2; :log info "creating script file..."; :local exportfile ("$sysname_" . "$date" . "_v$sysver" . ".rsc"); /export show-sensitive file=$exportfile; :delay 2; :local files ($backupfile,$exportfile); :log info "sending files via email..."; /tool e-mail send to=mail@mail.com file=$files subject=("$rbmodel backup (" . [/system clock get date] . ")") body=("$sysname backup files are in the attachment.\nTime and Date: " . [/system clock get time] . " " . [/system clock get date] . "\n\nModel: $rbmodel\nRouterOS: $sysver\nUptime: $rbuptime"); :delay 4; :log info "...system backup completed"; }
ROS 6.x - 7.9
{ :log info "starting backup process..."; :local sysver [/system package get routeros version]; :local sysname [/system identity get name]; :local rbmodel [/system router get model]; :local rbuptime [/system resource get uptime]; :log info "flushing DNS cache..."; /ip dns cache flush; :delay 2; :log info "deleting latest backups..."; :foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname-"]]!="nil") do={/file remove $i}}; :delay 2; :log info "creating backup file..."; :local backupfile ("$sysname-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . "-v$sysver" . ".backup"); /system backup save name=$backupfile; :delay 2; :log info "creating script file..."; :local exportfile ("$sysname-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . "-v$sysver" . ".rsc"); /export show-sensitive file=$exportfile; :delay 2; :local files ($backupfile,$exportfile); :log info "sending files via email..."; /tool e-mail send to=mail@mail.com file=$files subject=("$rbmodel backup (" . [/system clock get date] . ")") body=("$sysname backup files are in the attachment.\nTime and Date: " . [/system clock get time] . " " . [/system clock get date] . "\n\nModel: $rbmodel\nRouterOS: $sysver\nUptime: $rbuptime"); :delay 4; :log info "...system backup completed"; } |