Страница 3 из 5

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

Добавлено: 27 сен 2013, 14:58
podarok66
Мдя, очевидно, что я неграмотно объясняю :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-)

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

Добавлено: 27 сен 2013, 15:15
vqd
Синтаксис посмотрите. Вот наводка
/system ssh command=

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

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

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

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

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

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

Добавлено: 27 сен 2013, 17:46
podarok66
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

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

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

Добавлено: 28 сен 2013, 08:05
vqd

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

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

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

Добавлено: 28 сен 2013, 18:27
vqd
Я то что вы хотите я делал с обычного ПК. А вообще ну в чем проблема в одну строку впихнуть сколько угодно команд?

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

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

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

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

Добавлено: 29 сен 2013, 07:33
vqd
Скрипт будет браться с вашего головного микротика и выполнятся на удаленном.

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

Добавлено: 29 сен 2013, 10:12
podarok66
Вы считаете, что это возможно? Очень уж заманчиво звучит...