Работа скрипта. Цикл жизни

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

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

Мдя, очевидно, что я неграмотно объясняю :D
Итак. Есть Мтик-сервер с локальным адресом 192.168.1.10. На нем есть скрипт:

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

:local smtpserv [:resolve "smtp.gmail.com"];
:local Eaccount "адрес_почты@gmail.com";
:local pass "почтовый пароль";
:log info "I start to collect Backup via FTP";
:foreach f in=[/file find] do={:if ([:typeof [:find [/file get $f name] "TV_Host-"]]!="nil") do={ /tool e-mail send from="<$Eaccount>" to=$Eaccount server=$smtpserv port=587 user=$Eaccount password=$pass start-tls=yes file=$f subject=("TV_Host (" . [/system clock get date] . ")") body=("TV_Host File see in attachment.
" . [/system clock get time] . " " . [/system clock get date]);
:delay 15;
/file remove $f;
:delay 15;}};


На втором Мтике-клиенте (именно он в скрипте обозван TV_Host) с адресом 192.168.1.33 свой скрипт:

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

:local sysname [/system identity get name];
:log info $sysname;
:local sysver [/system package get system version];
:log info $sysver;
:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] "$sysname-backup-"]]!="nill") do={/file remove $i}};
:delay 2;
: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");

:log info "Creating new Full Backup file...";

/system backup save name=$backupfile;

:delay 15;

: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");

:log info "Creating new Setup Script file...";

/export file=$exportfile;

:delay 5;

:local address "192.168.1.10 ";
:local login "Логин входа на сервер";
:local pass "пароль на сервер"
/tool fetch address=$address src-path=$backupfile user=$login password=$pass port=21 upload=yes mode=ftp dst-path=$backupfile;
/tool fetch address=$address src-path=$exportfile user=$login password=$pass port=21 upload=yes mode=ftp dst-path=$exportfile;


Мне сильно не нравится, что часть скриптов находится на Мтике-клиенте. И я бы хотел перетащить всю эту премудрость в одно место. Но для этого я должен именно в скрипте, а не в Terminal зайти на Мтик-клиент,разыскать и удалить старые файлы, дать команду на бэкап, и уйти с него, утащив нужные мне файлы (поиск по началу имени, так как дата очень желательна) по FTP. Из Terminal войти несложно, а вот из скрипта не получается, не знаю я, как мне прописать вход с логином и паролем. Вот я и спрашиваю, не знаете ли Вы, вообще эта возможность существует?
Прошу прощения за многословие 8-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Синтаксис посмотрите. Вот наводка
/system ssh command=


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Туплю сильно, ну не получается войти одной строкой, пароль надо вводить самому все равно. Такое не работает:

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

/system ssh 192.168.1.30 user=Логин command=[:put "Пароль"]

Пойду курить мануал...
Похоже, мне нужны ключи ssh...


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

If server does not support pseudo-tty (ssh -T or ssh host command), like mikrotik ssh server, then it is not possible to send multiline commands via SSH

Обидно, видимо не получится. Публичный импортировался легко, а вот закрытый отказывается принять, говорит:
input does not match any value of public-key-file

Другие пути есть?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:



Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Так я первую цитатку именно оттуда привел. Там как раз и говориться, что многострочные команды не поддерживаются сервером Mikrotik'a. А в одну строку я как-то не смогу впихнуть все свои хотелки. Пока оставлю, как есть, на клиенты порежу вход извне и ладно 8-)
Со временем что-то решу более кардинальное, например серверок ssh на каком-нибудь Unix. Пока до этого не доросли еще, не по Сеньке шапка.
В любом случае спасибо за заботу.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Я то что вы хотите я делал с обычного ПК. А вообще ну в чем проблема в одну строку впихнуть сколько угодно команд?

/system script run .... - вполне вписывается в условия и даже работает ))


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Если бы дело было в запуске скрипта на роутере-клиенте, я бы обошелся шедулером. )) Я хотел вообще удалить скрипты с клиентских роутеров и всё выполнять с одного маршрутизатора. Странное желание, но вот так ...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Скрипт будет браться с вашего головного микротика и выполнятся на удаленном.


Есть интересная задача и бюджет? http://mikrotik.site
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Вы считаете, что это возможно? Очень уж заманчиво звучит...


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