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

проверка обновлений скриптом

Добавлено: 02 мар 2017, 11:54
mykolaq
Всем привет!
Может на форуме и есть, но почему-то не нашел.a =
Есть такой скрипт для проверки обновления по для mikrotik. Но он не работает, при этом отдельно команды

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

/system package update check-for-updates
,

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

/system package update download
и отсылка email работает. Направьте как мне отследить где косяк

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

:local email "emailhere"
#####
:if ( [/system package update get status] != "Downloaded, please reboot router to upgrade it" ) do={
/system package update check-for-updates
:delay 3
:if ( [/system package update get installed-version] != [/system package update get latest-version] ) do={
/system package update download
:delay 20
/tool e-mail send to=$email subject="Mikrotik updates"  body="Available update for RouterOS! New version - $[/system package update get latest-version]. Info - http://www.mikrotik.com/download"
 }

Re: проверка обновлений скриптом

Добавлено: 02 мар 2017, 18:32
DmNuts
Может, проблема в отсутствии закрывающей скобки } в первом :if?
У меня отрабатывает.

Re: проверка обновлений скриптом

Добавлено: 02 мар 2017, 18:38
Dragon_Knight
DmNuts, о какой скобки? все скобки на месте.
Скорее всего не работает из за комментариев, которые ведут себя очень неадекватно.

Re: проверка обновлений скриптом

Добавлено: 02 мар 2017, 18:45
DmNuts
В смысле, вот так правильно:

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

:if ( [/system package update get status] != "Downloaded, please reboot router to upgrade it" ) do={
/system package update check-for-updates
}

Re: проверка обновлений скриптом

Добавлено: 02 мар 2017, 21:05
podarok66
Значит так, по всей видимости вы начинаете проверку после перезагрузки. На этот момент

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

/system package update get status

не имеет статуса вообще. То есть вы получаете пустое значение. Для того, чтобы отрабатывало, надо команду

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

/system package update check-for-updates

дать в скрипте раньше, чем

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

/system package update get status


Понимаете, о чем я?
Самая простая проверка моих слов - запустите после перезагрузки в терминале такую связку

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

{ global PACUP [/system package update get status]; :put $PACUP}

А потом после еще одной перезагрузки такую

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

{/system package update check-for-updates ; global PACUP [/system package update get status]; :put $PACUP}

Re: проверка обновлений скриптом

Добавлено: 06 мар 2017, 12:32
mykolaq
спасибо, сейчас все попробую, но думаю что все починю =)

Re: проверка обновлений скриптом

Добавлено: 06 мар 2017, 12:38
mykolaq
да, все работает, всем спасибо за помощь. впредь буду внимательнее

Re: проверка обновлений скриптом

Добавлено: 08 апр 2018, 13:36
kreotoDr
mykolaq писал(а): 06 мар 2017, 12:38 да, все работает, всем спасибо за помощь. впредь буду внимательнее
Добрый день!
Если не трудно сбросьте полный листинг скрипта...

Re: проверка обновлений скриптом

Добавлено: 08 апр 2018, 19:31
podarok66
Вы что, издеваетесь? Ну всё же в теме прописано. Что ещё-то надо? Внимательно прочтите тему и поправьте скрипт из стартового поста в соответствии с рекомендациями.