Скрипты

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Ответить
M1chA
Сообщения: 149
Зарегистрирован: 05 мар 2012, 11:35

Помогите пожалуйста разобраться с скриптами.
Нужно отсылать бекап конфигурации на емейл.

Скрипт,который бекапит мою конфигурацию

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

global name
global datetime
global year
global day
global month
set name [/system identity get name]
set datetime [/system clock get date]
set month [:pick $datetime 0 (3)]
set day [:pick $datetime 4 (6)]
set year [:pick $datetime 7 (11)]
/system backup save name="$name-$day$month$year.backup"


Скрипт,который мне понравился и который я хочу оптимизировать под себя:
(скрипт взят отсюда: http://habrahabr.ru/post/153971/)

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

#:log info "///----> Я начал бэкапиться" (расскоменчиваю эти строки для дебага)
:global backupfile ([/system identity get name]. ".backup") #задаю переменную
:if ([/file find name=$backupfile] != "") do={/file rem $backupfile} #удаляю, если файл уже существует
:delay 2s

#:log info "///----> Подготавливаю лог для отправки"

:global logMessages;
:set logMessages ""
:foreach i in=[/log find ] do={
:set logMessages ($logMessages. [/log get $i time ]. " ");
:set logMessages ($logMessages. [/log get $i message ]);
:set logMessages ($logMessages. "\n")
}

#:log info "///----> Создаю бэкап"
/system backup save name=$backupfile
#:log info "///----> Жду 5 сек. завершения процедуры"
:delay 5s
#:log info "///----> Посылаю конфиг на e-mail" (следующий код — одна длинная строка!)
/tool e-mail send to=mail@examle.com subject=(«router daily backup») file=$backupfile body=(«Бэкап конфигурационного файла маршрутизатора ». [/system identity get name]. ". \nВыполнен: ". [/system clock get time]. " ". \ [/system clock get date]. " \n____________________\n \nUptime: ". [/system resource get uptime]. "\nСвободно оперативки: ". [/system resource get free-memory]. " из ". [/system resource get total-memory]. " Кбайт. \nСвободное место: ". [/system resource get free-hdd-space]. " из ". [/system resource get total-hdd-space]. " Кбайт. \nBad-блоки: ". [/system resource get bad-blocks]. " %. \nЗагрузка процессора на данный момент: ". [/system resource get cpu-load]. " % \n____________________\n \nПоследние записи в логе: \n \n". $logMessages. " \n____________________ \n". [/system identity get name])

#:log info "///----> Жду 10 сек. пока письмо отправится"
:delay 10s
/file remove $backupfile
:log info "///----> Бэкап завершён. Файл послан на mail@example.com. Ура!"


Мучаюсь мучаюсь а файл бекапа не приходит.
Мне кажется что скрипт отсылки не находит мой бекап.
Подскажите пожалуйста, что и где заменить?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

У меня была такая ерунда, пока скрипт писал и настраивал через Webfig. Как только то же самое сделал через Winbox, все заработало. Странно конечно, но факт. Видимо Webfig где-то некорректно что-то сохранял. Попробуйте, может и прокатит.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
M1chA
Сообщения: 149
Зарегистрирован: 05 мар 2012, 11:35

podarok66
Я все делаю через Winbox )))
Частично проблему решил. Файл создается и MT пытается его отправить.
Осталось решить 2 нюанса.
1. Файл создается только по имени Микротика + .backup а надо чтобы он был формата $name-$day$month$year.backup
2. При отправке файла бекапа на мыло в логах появляется ошибка:
Error sending e-mail <router daily backup> error connection to server


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

1. имя файла задаётся в этой строке:

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

:global backupfile ([/system identity get name]. ".backup")

получение даты:
/system clock get date

2. проверьте настройки в Tools - Email


M1chA
Сообщения: 149
Зарегистрирован: 05 мар 2012, 11:35

simpl3x
так должно быть: ?

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

#:log info "///----> Я начал бэкапиться" (расскоменчиваю эти строки для дебага)
:global backupfile ([/system identity get name]. "$name-$day$month$year.backup") #задаю переменную
:if ([/file find name=$backupfile] != "") do={/file rem $backupfile} #удаляю, если файл уже существует
:delay 2s

#:log info "///----> Подготавливаю лог для отправки"

:global logMessages;
:set logMessages ""
:foreach i in=[/log find ] do={
:set logMessages ($logMessages. [/log get $i time ]. " ");
:set logMessages ($logMessages. [/log get $i message ]);
:set logMessages ($logMessages. "\n")
}

#:log info "///----> Создаю бэкап"
/system backup save name=$backupfile
#:log info "///----> Жду 5 сек. завершения процедуры"
:delay 5s
#:log info "///----> Посылаю конфиг на e-mail" (следующий код — одна длинная строка!)
/tool e-mail send to=mail@examle.com subject=(«router daily backup») file=$backupfile body=(«Бэкап конфигурационного файла маршрутизатора ». [/system identity get name]. ". \nВыполнен: ". [/system clock get time]. " ". \ [/system clock get date]. " \n____________________\n \nUptime: ". [/system resource get uptime]. "\nСвободно оперативки: ". [/system resource get free-memory]. " из ". [/system resource get total-memory]. " Кбайт. \nСвободное место: ". [/system resource get free-hdd-space]. " из ". [/system resource get total-hdd-space]. " Кбайт. \nBad-блоки: ". [/system resource get bad-blocks]. " %. \nЗагрузка процессора на данный момент: ". [/system resource get cpu-load]. " % \n____________________\n \nПоследние записи в логе: \n \n". $logMessages. " \n____________________ \n". [/system identity get name])

#:log info "///----> Жду 10 сек. пока письмо отправится"
:delay 10s
/file remove $backupfile
:log info "///----> Бэкап завершён. Файл послан на mail@example.com. Ура!"


Куда это пихать:
получение даты:
/system clock get date


Не пинайте сильно,скрипты мне не даются... (((

2. проверьте настройки в Tools - Email

Там чисто. Мне казалось что скрипт сам автоматом должен заполнить все поля


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

так должно быть: ?


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

:global backupfile ([/system identity get name] . "-" . [:pick [/system clock get date] 4 6] . "." . [:pick [/system clock get date] 0 3] . "." . [:pick [/system clock get date] 7 11] . ".backup");


Там чисто. Мне казалось что скрипт сам автоматом должен заполнить все поля

вам показалось, в вашем скрипте задаётся только адрес назначения, тема и тело письма. либо добавляйте в скрипт, либо в Tools - Email забивайте параметры smtp сервера, иначе мтик не будет знать через что ему отправлять письмо:

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

[admin@internet-hub] > tool e-mail print 
   address: 74.125.143.108
      port: 587
  starttls: no
      from: <vasya@domen.ru>
      user: vasya@domen.ru
  password: password


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Тут возник у меня вопрос к ТС. А вам актуально именно этот скрипт, или вам просто бэкап нужен на почту, если бэкап на почту, то в разделе готовых скриптов есть точно работающий скрипт. Только вставить свои данные почтового аккаунта и все заработает. Во всяком случае у меня давно уже работает, проблем не наблюдаю.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
M1chA
Сообщения: 149
Зарегистрирован: 05 мар 2012, 11:35

podarok66
Мне в принципе только бекап на мыло нужен, а к данному скрипту я прицепился потому что помимо бекапа он предоставляет еще кучу инфы которая мне не помешает.


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Хозяин-барин, мне логи RouterOs абсолютно не нравятся, инфы там минимум.
Если дело в инфе, то это можно и дописать в скрипт потом, вы сначала отправку бэкапа настройте. А скрипт из раздела готовых советую, потому что он у меня работает и не подводит. И настроек под себя там минимум. нечему ломаться, не в чем путаться.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить