Страница 1 из 3

Отправка бекапов на почту

Добавлено: 19 апр 2016, 13:18
vqd
Тут ко то просил срипт который бекапы на почту шлет. Держите.
Разумеется сначала нужно настроить /tool email

Код: Выделить всё

:local to to@mail.ru
:local data [/system clock get date]
:local mouth {"jan"="01";"feb"="02";"mar"="03";"apr"="04";"may"="05";"jun"="06";"jul"="07";"aug"="08";"sep"="09";"oct"=10;"nov"="11";"dec"="12"}
:local FileName ("mikrotik_" . [:pick $data 7 11] . ($mouth -> [:pick $data 0 3]) . [:pick $data 4 6])
/system backup save dont-encrypt=yes name=$FileName
/export file=$FileName
:delay 5
/tool e-mail send to=$to subject=BC body=$FileName file=($FileName . ".backup")
/tool e-mail send to=$to subject=BC body=$FileName file=($FileName . ".rsc")
:delay 5
/file remove [find name~$FileName] 

Re: Отправка бекапов на почту

Добавлено: 08 дек 2016, 10:45
KOHuK
А рот-то (mouth) здесь при чем?

Типа, в рот мне дату? ;-)

Re: Отправка бекапов на почту

Добавлено: 10 дек 2016, 08:22
vqd
KOHuK писал(а):А рот-то (mouth) здесь при чем?

Типа, в рот мне дату? ;-)



Не понял вопроса

Re: Отправка бекапов на почту

Добавлено: 10 дек 2016, 10:09
podarok66
Опечатка при написании имени переменной. Должно быть month - месяц, а получилось mouth - рот. Ну сумничал человек, пусть его. Зато за скриптописанием замечен не был, и просто дельных замечаний не наблюдается.

Re: Отправка бекапов на почту

Добавлено: 10 дек 2016, 10:59
Kato
интересно, что об этой ошибке никто за это время не отписался(

Re: Отправка бекапов на почту

Добавлено: 10 дек 2016, 11:14
podarok66
Да не ошибка это, не ошибка. При ошибке скрипт не работает или работает криво. А тут просто опечатка. Ну да мы тут такие лютые англичане, что ой-вэй :-) Я вообще часть переменных в транскрипции пишу (слово русское - буквы аглицкие)
И ничего, всё работает. Кому это глаз режет, пусть переписывает заново в соответствии со своими предпочтениями.

Re: Отправка бекапов на почту

Добавлено: 13 дек 2016, 17:11
KOHuK
podarok66 писал(а):Опечатка при написании имени переменной. Должно быть month - месяц, а получилось mouth - рот. Ну сумничал человек, пусть его. Зато за скриптописанием замечен не был, и просто дельных замечаний не наблюдается.

За скриптописанием и дельными замечаниями я и не мог был замечен, т.к. в mikrotik полный нуб, пришел сюда поиском по "mikrotik почта бекап", заметил смешную ошибку, написал о ней, получил предупреждение за флуд. Круто!

Ну может хоть на вопрос ответите? Такой:

Во всех скриптах бекапа настроек на e-mail (и в этом тоже :) ) часто изгаляются, чтобы дать файлу конфигурации имя, в котором содержится дата и время бекапа и зачастую identity. А я не могу понять зачем? Ведь команда /system backup save сохраняет файл, в имени которого уже есть имя-дата-время?
Соответственно после сохранения бекапа можно просто дать команду
/tool e-mail send to=кто-то@там.то subject="........................" file="$[/file get бекап name]"
но вот легко взять имя файла не получается, все какая-то монструозность выходит. Так как просто подставить имя файла, если учесть что он там один, после отсылки файл уничтожается?

Re: Отправка бекапов на почту

Добавлено: 13 дек 2016, 17:39
KARaS'b
KOHuK писал(а):Во всех скриптах бекапа настроек на e-mail (и в этом тоже :) ) часто изгаляются, чтобы дать файлу конфигурации имя, в котором содержится дата и время бекапа и зачастую identity. А я не могу понять зачем? Ведь команда /system backup save сохраняет файл, в имени которого уже есть имя-дата-время?
Соответственно после сохранения бекапа можно просто дать команду
/tool e-mail send to=кто-то@там.то subject="........................" file="$[/file get бекап name]"
но вот легко взять имя файла не получается, все какая-то монструозность выходит. Так как просто подставить имя файла, если учесть что он там один, после отсылки файл уничтожается?

Насколько я понимаю, в этом-то и есть загвоздка, это вы глазами видите как файл называется, это вы понимаете, что он там один, а вот микротик нет, он создает файл, а что ему потом брать? Как он поймет, что вам нужен именно этот файл? Поэтому и задается переменная с помощью которой вы сначала даете имя файлу, а уже потом на основе этой переменной берете этот файл по имени и отправляете его.

Re: Отправка бекапов на почту

Добавлено: 13 дек 2016, 21:10
podarok66
Если честно, меня сама форма написания имени не устраивает. Это же ужас какой-то MikroTik-20161213-2028.backup Некрасиво, сложно воспринимается глазом, при работе с большим количеством бэкапов рябит. Мне мой теперешний вариант MikroTik-backup-2016dec10.backup более удобен, ну нет времени создания, так оно вроде как и неактуально. А вообще, тут как бы всё на вкус и цвет.
Про то, как брать файл по имени, отдельная история :-) Тут уж у кого как. Вот например как это примерно работает у меня в скрипте:

Код: Выделить всё

:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname-backup-"]]!="nil") do={/file remove $i}};

Приходится использовать подобную конструкцию, по которой ищутся и уничтожаются предыдущие файлы бэкапов (их может быть несколько)
Ну а предупреждение - это просто предупреждение. Никаких санкций оно не несет. Кроме того, вы же обратили внимание на него и какие=то выводы сделали, значит я своей цели добился :-)

Re: Отправка бекапов на почту

Добавлено: 14 дек 2016, 13:32
JoeRee
А что-нибудь подобное с отправкой на другой samba-сервер возможно?