ФИНАЛЬНАЯ ВЕРСИЯ СКРИПТА (ROS 6.x-7.9)
1. добавляем скрипт в System -
Scripts (надо будет придумать имя скрпта)
2. расписание создаём в System -
Schedule (в области On Event указываем имя скрипта из п.1)
остановился на таком варианте:
Код: Выделить всё
{
: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 [email protected] 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 7.10+
в 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 [email protected] 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";
}
скрипт полностью рабочий, только сначала не забудьте настроить
Tools->Email и заменить email-адрес в скрипте на свой
единственная проблема, которую не могу решить - как прицепить два вложения к письму?
сейчас приходится два письма слать
если знать точно имена файлов и подставлять их в атачмент (как в самом первом скрипте), то можно отсылать письмо с несколькими вложениями, а вот с вложениями в виде переменных так не получилось
upd:
подправил скрипт
теперь всё ок, письмо только одно и к нему цепляются оба файла
upd2:
косметические изменения
универсальный вариант скрипта, в переменных и именах файлов больше нет привязки к конкретной модели
upd3:
скрипт стал ещё более универсальным, должен работать и на ROS 6.x и на ROS 7.x
в rsc файл теперь экспортируются и пароли (если вам это не нужно, удалите "show-sensitive" из скрипта)
upd4:
в связи с особенностями ROS 7.10+, добавил ещё одну версию скрипта