Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
enzain
- Сообщения: 291
- Зарегистрирован: 26 дек 2017, 22:30
26 янв 2018, 11:30
felcons писал(а):сильно ногами не пинайте.
в код скрипта вставил вот те две строки
[/interface get ether5 rx-byte]
[/interface get ether5 tx-byte]
ставил там где уже body, где тело письма, и скрипт вообще отказался работать.
В телнете пробовал вводить те строки то данных никаких не выдавалось.
Не выдадутся.
Сначала в переменную надо записать, потом её использовать.
-
felcons
- Сообщения: 11
- Зарегистрирован: 16 янв 2018, 10:24
29 янв 2018, 15:41
сделал в форме переменных и не работает.
редактировал через веб интерфейс в разделе system scripts, в поле sources.
Вначале, как положено ставил 8 пробелов и всё описал.
получился вот такой скрипт:
Код: Выделить всё
:local PointLogin "";
:local PointPassword "";
:local MailTo "mymail@ukr.net";
: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=195.42.130.17 port=25 start-tls=no user=$PointLogin \
password=$PointPassword to=$MailTo from="mysendmail@point.lviv.ua" \
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". \
"Send Bytes:".[interface ethernet get ether5 tx-bytes]. "\n". \
"Received bytes".[interface ethernet get ether5 rx-bytes]. "\n". \
"\n____________________\n \n". \
$logMessages \
) file=$FileName;
#delete old log
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=65000
:log info "System log cleared by email-log-backup script...";
: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!";
};
-
felcons
- Сообщения: 11
- Зарегистрирован: 16 янв 2018, 10:24
12 фев 2018, 13:31
Я пробовал уже по-разному задавать в скрипте вот таких две строки, как и было написано
Код: Выделить всё
[interface ethernet get ether5 rx-bytes]
[interface ethernet get ether5 tx-bytes]
как его проверить работает ли оно вообще? может как-то в телнете можна проверить?
-
enzain
- Сообщения: 291
- Зарегистрирован: 26 дек 2017, 22:30
13 фев 2018, 08:20
felcons писал(а): ↑12 фев 2018, 13:31
Я пробовал уже по-разному задавать в скрипте вот таких две строки, как и было написано
Код: Выделить всё
[interface ethernet get ether5 rx-bytes]
[interface ethernet get ether5 tx-bytes]
как его проверить работает ли оно вообще? может как-то в телнете можна проверить?
:global rx [interface ethernet get ether5 rx-bytes]
:global tx [interface ethernet get ether5 tx-bytes]
system script environment print
-
felcons
- Сообщения: 11
- Зарегистрирован: 16 янв 2018, 10:24
14 фев 2018, 13:49
Ну уже и в переменные задал и тогда вообще инфа не выдаётся в почту.
Что ж уже не так.
всё описал руками и переменные задал.
и скрипт вот такой:
Код: Выделить всё
:local PointLogin "";
:local PointPassword "";
:local MailTo "andrij@ukr.net";
: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")
}
:global x1 [interface ethernet get ether1 tx-bytes];
:global x2 [interface ethernet get ether1 rx-bytes];
/tool e-mail send server=195.42.130.17 port=25 start-tls=no user=$PointLogin \
password=$PointPassword to=$MailTo from="felcons@point.lviv.ua" \
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". \
"send bytes: $x1 \n" \
"received bites: $x2 \n" \
"\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!";
};
-
Expressimo
- Сообщения: 3
- Зарегистрирован: 23 апр 2018, 15:48
23 апр 2018, 15:54
purumtumtum писал(а): ↑31 июл 2016, 11:33
В моем случае было удобнее отправлять бэкап с помощью почтовой учетки на яндексе. Скрипт собран из целой кучи других. Его особенности:
- Корректная работа вне зависимости от наличия и настроек 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!";
};
Время от времени его немного дописываю, но этот вариант исправно работает уже несколько лет.
А как доработать этот скрипт, чтобы вместе с "полным" бэкапом делался и посылался по почте также бэкап конфигурации (.rsc), а в конце письма отображались не последние сообщения, а только определённые, например login failure?
-
mousesport007
- Сообщения: 1
- Зарегистрирован: 19 мар 2019, 10:32
19 мар 2019, 10:39
Expressimo писал(а): ↑23 апр 2018, 15:54
purumtumtum писал(а): ↑31 июл 2016, 11:33
В моем случае было удобнее отправлять бэкап с помощью почтовой учетки на яндексе. Скрипт собран из целой кучи других. Его особенности:
- Корректная работа вне зависимости от наличия и настроек 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!";
};
Время от времени его немного дописываю, но этот вариант исправно работает уже несколько лет.
А как доработать этот скрипт, чтобы вместе с "полным" бэкапом делался и посылался по почте также бэкап конфигурации (.rsc), а в конце письма отображались не последние сообщения, а только определённые, например login failure?
немного доработал данный скрипт
добавил rsc и backup в одно сообщение
сделал resolv на smtp.yandex.ru вдруг ip яндекса поменяется
проверял на версии 6.44.1
Код: Выделить всё
:local YandexLogin "yourlogin@yandex.ru";
:local YandexPassword "yourpassword_yandex.ru";
:local MailTo "pochta_kuda_slat@blabla.ru";
: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]]];
:local smtpserv [:resolve "smtp.yandex.ru"];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
: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";
:local Exportfile ([/system identity get name]."__$Day_$Month_$Year__$Hour_$Min.rsc");
:log info "Backup file ($Exportfile) created success";
/export file=$Exportfile;
:local files {$FileName;$Exportfile};
: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=$smtpserv 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=$files;
:log info "Mail with backup sending success";
:do {
:delay 3s;
/file remove $FileName;
:delay 3s;
/file remove $Exportfile;
:log info "Remove backup file success";
} on-error={
:log warning "Cannot remove backup file $FileName";
};
} on-error={
:log warning "Email sending failed!";
:log warning "Deleting creating backups files";
:delay 3s;
/file remove $FileName;
:delay 3s;
/file remove $Exportfile;
:log info "Remove backup file success";
};
} on-error={
:log error "Backup creation failed!";
};
-
usag
- Сообщения: 6
- Зарегистрирован: 26 мар 2018, 10:52
06 апр 2019, 17:21
не отправляет на 6.43.2 на 6.43 отправляет причина не подскажите
-
ruslan.turanskiy
- Сообщения: 1
- Зарегистрирован: 06 июн 2019, 16:54
09 июн 2019, 10:33
Воспользовался скриптом из последнего поста, все работает - спасибо. Но возник вопрос, при отправке такого отчета с кириллицей приходят знаки вопроса. Я так понимаю, надо играть с кодировкой? Или это не поможет вовсе?
-
kanitelka
- Сообщения: 3
- Зарегистрирован: 23 июл 2018, 13:21
28 июн 2019, 13:37
На 6.44 решил вопрос с работой скрипта следующим образом - заменил local на global.
Вдруг кому пригодится.
