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

А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 10:36
Takie_dela
Здравствуйте!

Я вот новичок в микротиках, недавно осилил Scripts на wiki.mikrotik, поднял unetlab с образом routeros. И стал думать - какие задачи бы скриптовые (а впрочем,и не только их) мне порешать. В интернете не нашёл такого сборника задач =) Может, у местных гуру есть идеи? Буду рад всем!

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 11:13
TauRus_tj
Добрый день. Прям задачи? Может я понял не правильно, но все-же)) Есть идея, отправлять логи с микротика на яндекс.диск, как воплотить? Причем дело это производить 1 раз в 24 часа, лог лежит в каталоге /flash log.0.txt, после его отправки/передачи удалить старый файл, чтобы не грузить микротик файлом, как-то так...

Идея в порядке алгоритма:
1. Проверка на наличие пинга до ya.ru, если есть, то шаг №2, если нет, еще 3 попытки, если же опять нет, то шаг №4 или стоп скрипта
2. Отправка/передача лог файла на почту и яндекс диск (почта используется как резерв)
3. Удаление лог файла с каталога
4. Ребут

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 11:34
Takie_dela
TauRus_tj писал(а):Добрый день. Прям задачи? Может я понял не правильно, но все-же)) Есть идея, отправлять логи с микротика на яндекс.диск, как воплотить? Причем дело это производить 1 раз в 24 часа, лог лежит в каталоге /flash log.0.txt, после его отправки/передачи удалить старый файл, чтобы не грузить микротик файлом, как-то так...

Идея в порядке алгоритма:
1. Проверка на наличие пинга до ya.ru, если есть, то шаг №2, если нет, еще 3 попытки, если же опять нет, то шаг №4 или стоп скрипта
2. Отправка/передача лог файла на почту и яндекс диск (почта используется как резерв)
3. Удаление лог файла с каталога
4. Ребут


Ага, вы верно всё поняли =) Спасибо за идею!

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 11:39
gmx
И не только логи, а еще и, например, конфиг...

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 11:42
TauRus_tj
gmx писал(а):И не только логи, а еще и, например, конфиг...

Да, и желательно конфиг_)
вот можно использовать ссылку для примера:
https://yadi.sk/d/xSoXBS6nyHw2L

Если понадобиться, могу дать логин и пароль, с полным доступом

И еще! При отправки/передачи файла добавлять в его название дату и время, чтоб не затирал уже отправленные/переданные

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 15:06
TauRus_tj
Takie_dela писал(а):
TauRus_tj писал(а):Добрый день. Прям задачи? Может я понял не правильно, но все-же)) Есть идея, отправлять логи с микротика на яндекс.диск, как воплотить? Причем дело это производить 1 раз в 24 часа, лог лежит в каталоге /flash log.0.txt, после его отправки/передачи удалить старый файл, чтобы не грузить микротик файлом, как-то так...

Идея в порядке алгоритма:
1. Проверка на наличие пинга до ya.ru, если есть, то шаг №2, если нет, еще 3 попытки, если же опять нет, то шаг №4 или стоп скрипта
2. Отправка/передача лог файла на почту и яндекс диск (почта используется как резерв)
3. Удаление лог файла с каталога
4. Ребут


Ага, вы верно всё поняли =) Спасибо за идею!

Вот скрипт, которым сам пользуюсь (он поставлен на запуск при ребуте), в нем отправка логов, бэкапов и конфига:
 
{
:delay 10;
:log info "Starting LOG Script...";
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "Deleting last LOGs...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \
"$sysname-LOG-"]]!="nil") do={/file remove $i}};
:delay 2;
:local smtpserv [:resolve "smtp.yandex.ru"];
:local Eaccount "USER@YANDEX.RU";
:local pass "PASSWORD";
:log info "Creating new LOG file...";
:local LOGfile ("$sysname-LOG-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
/log print file=$LOGfile;
:delay 2;
:log info "Sending LOG file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$LOGfile \
subject=("$sysname LOG file (" . [/system clock get date] . ")") \
body=("$sysname LOG file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 10;
:log info "Starting Backup Script...";
:log info "Deleting last Backups...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \
"$sysname-backup-"]]!="nil") do={/file remove $i}};
:delay 2;
:log info "Creating new Full Backup file...";
:local backupfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");
/system backup save name=$backupfile;
:delay 2;
:log info "Sending Full Backup file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$backupfile \
subject=("$sysname Full Backup (" . [/system clock get date] . ")") \
body=("$sysname full Backup file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 5;
:log info "Creating new Setup Script file...";
:local exportfile ("$sysname-backup-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");
/export verbose file=$exportfile;
:delay 2;
:log info "Sending Setup Script file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$exportfile \
subject=("$sysname Setup Script Backup (" . [/system clock get date] . \
")") body=("$sysname Setup Script file see in attachment.\nRouterOS \
version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \
" . [/system clock get date]);
:delay 5;
:log info "All LOGs and System Backups emailed successfully.\nBackuping completed.";
}

А вот сама отправка логов с удалением файла flash/log.0.txt и ребута по завершению скрипта, скрипт актуален при условии, что у вас включен запись лога на диск:
 
{
:log info "Starting LOG Script...";
:local sysname [/system identity get name];
:local sysver [/system package get system version];
:log info "Flushing DNS cache...";
/ip dns cache flush;
:delay 2;
:log info "Deleting last LOGs...";
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \
"$sysname-LOG-"]]!="nil") do={/file remove $i}};
:delay 2;
:local smtpserv [:resolve "smtp.yandex.ru"];
:local Eaccount "USER@YANDEX.RU";
:local pass "PASSWORD";
:log info "Creating new LOG file...";
:local LOGfile ("$sysname-LOG-" . \
[:pick [/system clock get date] 7 11] . [:pick [/system \
clock get date] 0 3] . [:pick [/system clock get date] 4 6]);
/log print file=$LOGfile;
:delay 2;
:log info "Sending LOG file via E-mail...";
/tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv \
port=587 user=$Eaccount password=$pass start-tls=yes file=$LOGfile \
subject=("$sysname LOG file (" . [/system clock get date] . ")") \
body=("$sysname LOG file see in attachment.\nRouterOS version: \
$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \
[/system clock get date]);
:delay 5;
:log info "Sending LOG file complete!!!";
:delay 15;
/file remove flash/log.0.txt
:delay 2;
/system reboot
}


Осталось привинтить сюда проверку на пинг, и яндекс диск :-):

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 15:35
Kato
не забудьте еще "кофе в постель" :-) - очень важная задача)

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 16:27
TauRus_tj
Kato писал(а):не забудьте еще "кофе в постель" :-) - очень важная задача)

Ну, кому-как) Кому кофе в постель в скрипте, а у кого-то это всё наяву :hi_hi_hi:

Re: А посоветуйте задачки на скрипты

Добавлено: 09 ноя 2016, 18:13
TauRus_tj
В продолжении темы: яндекс диск поддерживает webdav, можно ли это как-то использовать для организации отправки с микротика на яндекс диск?
https://yandex.ru/support/disk/webdav.html

Re: А посоветуйте задачки на скрипты

Добавлено: 10 ноя 2016, 04:21
Kato
TauRus_tj писал(а):В продолжении темы: яндекс диск поддерживает webdav, можно ли это как-то использовать для организации отправки с микротика на яндекс диск?
https://yandex.ru/support/disk/webdav.html

изначально и надо сделать, т.е. использовать вебдав