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

Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 09:20
maxim_minton
Ситуация в следующем. На НАСе есть php генерирующий адреса для StopAD на микротике запускается скрипт, который периодически забирает эти адреса. Но иногда скрипт выполняется в тот момент, когда на НАСе спящий режим и все отключено. НАС выводиться из спящего режима просто обращением к нему и через 10 сек он готов к работе. Вопрос в следующем, что добавить к сrрипту, чтоб он подождал эти 10 сек, а не выбивал сразу же ошибку.

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

:local hostScriptUrl "http://192.168.1.8/test.php";
:local scriptName "AutoADBlock";
:local backupFileName "before_stopad";
:local logPrefix "[StopAD]";
do {
  /tool fetch mode=http url=$hostScriptUrl dst-path=("./".$scriptName);
  :delay 20s;
   :if ([:len [/file find name=$scriptName]] > 0) do={
   /system backup save name=$backupFileName;
     :delay 20s;
     :if ([:len [/file find name=($backupFileName.".backup")]] > 0) do={
     /ip dns static remove [/ip dns static find comment=ADBlock];
       /import file-name=$scriptName;
       /file remove $scriptName;
       :log info "$logPrefix AD block script imported, backup file (\"$backupFileName.backup\") created";
     } else={
       :log warning "$logPrefix Backup file not created, importing AD block script stopped";
     }
 } else={
     :log warning "$logPrefix Backup file not downloaded, script stopped";
     }
} on-error={
 :log warning "$logPrefix AD block script download FAILED";}

Re: Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 10:01
gmx
Написать два скрипка.
Первый будет просто обращаться к нас, чтобы он включился, а второй будет делать все остальное.
Ну и запускать их с некоторой разницей по времени.

Re: Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 10:07
maxim_minton
gmx писал(а):Написать два скрипка.
Первый будет просто обращаться к нас, чтобы он включился, а второй будет делать все остальное.
Ну и запускать их с некоторой разницей по времени.

Это я уже придумывал, но надеялся, что есть более элегантное решение :-)

Re: Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 10:29
Vlad-2
maxim_minton писал(а):Это я уже придумывал, но надеялся, что есть более элегантное решение :-)

Я бы иначе поступил, я бы запретил НАСу "спать". У некоторых насов есть сон для винтов,
но зачем НАС отключать/усыплять? Днём с ним работают, по вечерам/ночам архивация идёт.
Да и я вычитал что лишнее включение/выключение хуже, чем долгая работа, да и практика показывает,
НАСы должны работать, а не спать. Я не беру в расчёт совсем маленькие НАСы, скажем дома,
для просмотра видео-контента.

В любом случаи тут два пути, или не давать заснуть НАСу и чтобы работа выполнялась всегда,
или как Вам посоветовали, отдельным скриптом/запросом пробуждать спящее устройство.

Re: Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 10:43
podarok66
А обратиться в начале скрипта к NAS и затем сделать delay 15; не судьба? Если он за 10 сек пробуждается... Зачем два скрипта?

Re: Добавить время ожидания в скрипт

Добавлено: 26 авг 2017, 11:55
maxim_minton
Vlad-2 писал(а):
maxim_minton писал(а):Это я уже придумывал, но надеялся, что есть более элегантное решение :-)

Я не беру в расчёт совсем маленькие НАСы, скажем дома,

Как раз про домашний и идет речь, он мне нужен только по вечерам после работы, ну или в течении дня никаких проблем пользования им нет, его программы архивации будят, и все нормально, но это редко.

podarok66 писал(а):А обратиться в начале скрипта к NAS и затем сделать delay 15; не судьба?

Как оказалось, не судьба, я не пойму как и что написать.

Re: Добавить время ожидания в скрипт

Добавлено: 27 авг 2017, 20:19
podarok66
maxim_minton писал(а):Как оказалось, не судьба, я не пойму как и что написать.

Вы выясните, какого обращения достаточно для пробуждения NAS. (Например пинга хватит или нет?) Выполните это действие, затем прописываете следующим шагом delay 15; что означает ждать 15 секунд, затем ваш скрипт.