Backup настроек на почту

Здесь выкладываем скрипты
mrrc
Сообщения: 34
Зарегистрирован: 03 авг 2016, 22:33

Re: Backup настроек на почту

Сообщение mrrc » 14 авг 2016, 19:15

podarok66 писал(а):
mrrc писал(а):Затык был в одном случае из-за некорректного значения tls=yes вместо положенного start-tls=yes

Ну да, скрипт-то был еще для пятой версии программного обеспечения, а сейчас уж ждем-не дождемся седьмую версию. Эта разница в настройках появилась при переходе на шестую версию, я поправил стартовый пост только сейчас. за что вам спасибо :ti_pa:

Все именно так, скрипт не редактировался еще со времени пятой версии.
А вам спасибо, что исправили регистрацию на форуме :-):

podarok66 писал(а):
mrrc писал(а):в другом попросту скрипт не был помещен в { }

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

Как интересно, сейчас проверил "Яндексовский" вариант из темы с выполнением без скобок - работает. Взял в оригинале - тоже работает. До этого совершенно точно отправка не работала, странно.
23q
Сообщения: 56
Зарегистрирован: 16 май 2013, 11:21

Re: Backup настроек на почту

Сообщение 23q » 15 авг 2016, 11:56

23q писал(а):
vqd писал(а):
23q писал(а):Как предлагаете отслеживать состояние отправки? Вроде в последних версиях добавили обработчик вывода в терминал. Можно анализировать лог по сообщению "Error sending e-mail" с момента последнего запуска скрипта.
Ну а ip smtp - туда уже можно прописать домен, эту возможность добавили.


Эм ну как бы ексепшн есть а дальше пишите обработку ошибки. Логи то зачем ковырять?

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

:do {/tool e-mail send server=1.1.1.1 port=25 user=admin@test.com password=111 start-tls=no to="111@gmail.com" from=admin@test.com subject="555" body="sdg"} on-error={ :log info "hh"}

при недоступности сервера не отрабатывает.

вот что мне ответили.
Hello,

E-mail tool already writes in Log errors about unsuccessful mail deliveries. For example:
11:52:05 system,e-mail,error Error sending e-mail <555>: timeout occurred

E-mail tool itself does not return error in CLI and works in background. On-error is not solution for e-mail tool.

Best regards,
Martins S.


vqd писал(а):
23q писал(а):Как предлагаете отслеживать состояние отправки? Вроде в последних версиях добавили обработчик вывода в терминал. Можно анализировать лог по сообщению "Error sending e-mail" с момента последнего запуска скрипта.
Ну а ip smtp - туда уже можно прописать домен, эту возможность добавили.


Эм ну как бы ексепшн есть а дальше пишите обработку ошибки. Логи то зачем ковырять?

или имелось ввиду что-то другое?
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: С использованием почты Yandex

Сообщение Heavymetall2000 » 02 сен 2016, 21:48

purumtumtum писал(а):В моем случае было удобнее отправлять бэкап с помощью почтовой учетки на яндексе. Скрипт собран из целой кучи других. Его особенности:

  • Корректная работа вне зависимости от наличия и настроек SMTP сервера - письма ходят через почтовый сервер Яндекса;
  • Корректное имя бэкап-файла (имя_железки + дата + время);
  • Критичные методы завернуты в обработчики ошибок, что значительно упрощает отладку и гарантирует четкую последовательность действий;
  • Сообщение, приходящее на почту содержит не только файл бэкапа и актуальную информацию о состоянии железки, но и лог событий самой железки;
  • Не оставляет за собой старых бэкап-файлов, сохраняя свободное место.

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

:local YandexLogin "YANDEX_MAILBOX_NAME@yandex.ru";
:local YandexPassword "YANDEX_MAILBOX_PASSWORD";

:local MailTo "YOUR_MAILBOX_NAME@gmail.com";
:local MailSubject "MikroTik Backup";

:local CurrentTime [/system clock get time];
:local CurrentDate [/system clock get date];

:local Hour [:tostr [:pick $CurrentTime 0 2]];
:local Min [:tostr [:pick $CurrentTime 3 5]];
:local Day [:tostr [:pick $CurrentDate 4 6]];
:local Month [:tostr [:pick $CurrentDate 0 3]];
:local Year [:tostr [:pick $CurrentDate 7 [:len $CurrentDate]]];

:do {
  :local FileName ([/system identity get name]."__$Day_$Month_$Year__$Hour_$Min.backup");
  /system backup save name=$FileName;
  :log info "Backup file ($FileName) created success";
 
  :do {
    :delay 2s;
    :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")
    }
    /tool e-mail send server=213.180.204.38 port=587 start-tls=yes user=$YandexLogin \
      password=$YandexPassword to=$MailTo from=$YandexLogin \
      subject=($MailSubject." ($Day/$Month/$Year $Hour:$Min)") \
      body=( \
        "System information:". \
        "\n____________________\n \n". \
        "Board name: ".[/system resource get platform]." ".[/system resource get board-name]."\n". \
        "Version: ".[/system resource get version]."\n". \
        "CPU: ".[/system resource get cpu]." (load ".[/system resource get cpu-load]."%)\n". \
        "Free HDD space: ".[/system resource get free-hdd-space]." (total: ".[/system resource get total-hdd-space].")\n". \
        "Free memory: ".[/system resource get free-memory]." (total: ".[/system resource get total-memory].")\n". \
        "Uptime: ".[/system resource get uptime]. \
        "\n \n \n". \
        "Last log messages:". \
        "\n____________________\n \n". \
        $logMessages \
      ) file=$FileName;
    :log info "Mail with backup sending success";
    :do {
      :delay 3s;
      /file remove $FileName;
      :log info "Remove backup file success";
    } on-error={
      :log warning "Cannot remove backup file $FileName";
    };
  } on-error={
    :log warning "Email sending failed!";
  };
} on-error={
  :log error "Backup creation failed!";
};


Время от времени его немного дописываю, но этот вариант исправно работает уже несколько лет.


Скрипт работает! Круто!
А как исправить проблему при отображении оптайма микротика? У меня написано Uptime 27d 7:23:16 а в письме приходит Uptime 3w6d 7:23:16!
KARaS'b
Сообщения: 378
Зарегистрирован: 29 сен 2011, 09:16

Re: С использованием почты Yandex

Сообщение KARaS'b » 02 сен 2016, 21:53

Heavymetall2000 писал(а):
purumtumtum писал(а):А как исправить проблему при отображении оптайма микротика? У меня написано Uptime 27d 7:23:16 а в письме приходит Uptime 3w6d 7:23:16!

А что конкретно вас не устраивает, то что 27 дней это 3 недели и 6 дней, о чем вам и написано, или в том, что это именно так отображается?
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: С использованием почты Yandex

Сообщение Heavymetall2000 » 02 сен 2016, 22:01

KARaS'b писал(а):
Heavymetall2000 писал(а):
purumtumtum писал(а):А как исправить проблему при отображении оптайма микротика? У меня написано Uptime 27d 7:23:16 а в письме приходит Uptime 3w6d 7:23:16!

А что конкретно вас не устраивает, то что 27 дней это 3 недели и 6 дней, о чем вам и написано, или в том, что это именно так отображается?



А, спасибо, я не понял, что это 3 weeks 6 days! Подумал, что это какая-то особая система счисления :)
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Backup настроек на почту

Сообщение Heavymetall2000 » 19 ноя 2016, 17:31

Добрый день! Подскажите, как можно определить проблему из-за чего скрипт вылетает с ошибкой! Добавил еще несколько скриптов на свой микротик (отправка внешнего ip на почту, если он изменился) - все работают. А отправка лога и бэкапа на почту перестала работать и выдает ошибку - Email sending failed! После перезагрузки микротика какое-то время все норм работает, потом опять это сообщение!
podarok66
Модератор
Сообщения: 2858
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Re: Backup настроек на почту

Сообщение podarok66 » 19 ноя 2016, 19:26

Ну так сложно сказать. Может ему времени на отправку не хватает, а может еще чего... В вашем варианте отправка вообще идет на два адреса, и с какого из них вы получили это сообщение, можно тоже только гадать. Для отлова косяков я обычно временно логирую все шаги и по логам отличаю, что отработало, а что нет. А у вас даже на неотправку письма на разные адреса логи одинаковые
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Heavymetall2000
Сообщения: 8
Зарегистрирован: 02 сен 2016, 21:42

Re: Backup настроек на почту

Сообщение Heavymetall2000 » 20 ноя 2016, 15:29

podarok66 писал(а):Ну так сложно сказать. Может ему времени на отправку не хватает, а может еще чего... В вашем варианте отправка вообще идет на два адреса, и с какого из них вы получили это сообщение, можно тоже только гадать. Для отлова косяков я обычно временно логирую все шаги и по логам отличаю, что отработало, а что нет. А у вас даже на неотправку письма на разные адреса логи одинаковые


А как включить это логирование? В скрипт какие-то команды добавить надо?
podarok66
Модератор
Сообщения: 2858
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Re: Backup настроек на почту

Сообщение podarok66 » 20 ноя 2016, 17:54

Интересненько вы скриптами пользуетесь ))))

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

:log error "Backup creation failed!"

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

Вернуться в «Готовые скрипты Mikrotik»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей