Главная » 2023 » Ноябрь » 30 » [ROS] Автобэкап на почту
21:07
[ROS] Автобэкап на почту

Взято тут, спасибо тебе, добрый человек! При переходе на седьмую версию сэкономил кучу времени.

ОБНОВЛЕНО. Первоисточник скрипта нынче недоступен. К несчастью, скрипт я скопипастил довольно по-хамски, сломав разметку. Не думал, что первоисточник схлопнется. Теперь сам и исправляю. 

Версия 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"; }

Категория: Железо | Просмотров: 140 | Добавил: davis74 | Рейтинг: 0.0/0
Всего комментариев: 0