Как игнорировать ошибку script error: failure: entry already exists

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
ArtVAnt
Сообщения: 158
Зарегистрирован: 30 окт 2020, 15:00

как при добавлении записей днс скриптом избежать такой ошибки?
Скрипт останавливается если натыкается на
script error: failure: entry already exists
как сделать игнорирование таких ошибок?

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

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

## StopAD - Script for blocking advertisements, based on your defined hosts files
## For changing any parameters, please, use this link: https://stopad.cgood.ru/
##
## @github    <https://github.com/tarampampam/mikrotik-hosts-parser>
## @version   4.3.0
##
## Setup this Policy for script: [X] Read [X] Write [X] Policy [X] Test

:local hostScriptUrl "https://stopad.cgood.ru/script/source?format=routeros&version=4.3.0&redirect_to=127.255.255.1&limit=12000&sources_urls=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Ftarampampam%2Fmikrotik-hosts-parser%40master%2F.hosts%2Fbasic.txt,https%3A%2F%2Fraw.githubusercontent.com%2Fcrazy-max%2FWindowsSpyBlocker%2Fmaster%2Fdata%2Fhosts%2Fspy.txt,https%3A%2F%2Fadaway.org%2Fhosts.txt,https%3A%2F%2Fwww.malwaredomainlist.com%2Fhostslist%2Fhosts.txt,https%3A%2F%2Fpgl.yoyo.org%2Fadservers%2Fserverlist.php%3Fhostformat%3Dhosts%26showintro%3D0%26mimetype%3Dplaintext,https%3A%2F%2Fsomeonewhocares.org%2Fhosts%2Fhosts,http%3A%2F%2Fwinhelp2002.mvps.org%2Fhosts.txt&excluded_hosts=localhost,localhost.localdomain,broadcasthost,local,ip6-localhost,ip6-loopback,ip6-localnet,ip6-mcastprefix,ip6-allnodes,ip6-allrouters,ip6-allhosts";
:local scriptName "stop_ad.script";
:local backupFileName "before_stopad";
:local logPrefix "[StopAD]";

do {
  /tool fetch check-certificate=no mode=https url=$hostScriptUrl dst-path=("./".$scriptName);
  :delay 3s;
  :if ([:len [/file find name=$scriptName]] > 0) do={
    /system backup save name=$backupFileName;
    :delay 1s;
    :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 AD block script not downloaded, script stopped";
  }
} on-error={
  :log warning "$logPrefix AD block script download FAILED";
};


Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

ArtVAnt писал(а): 20 сен 2021, 13:33 как при добавлении записей днс скриптом избежать такой ошибки?
Скрипт останавливается если натыкается на
script error: failure: entry already exists
как сделать игнорирование таких ошибок?
ответ лежал на том же сайте где и скрипт:
"Если после перехода на обновленную версию скрипта у вас появляются в логе микротика ошибки, содержащие текст: script error: failure: entry already exists, то рекомендую или ручками сперва снести все имеющиеся статические маршруты (оставив необходимые, разумеется), или выполнив в консоли /ip dns static remove [/ip dns static find];"


ArtVAnt
Сообщения: 158
Зарегистрирован: 30 окт 2020, 15:00

Virtue писал(а): 21 сен 2021, 01:05
ArtVAnt писал(а): 20 сен 2021, 13:33 как при добавлении записей днс скриптом избежать такой ошибки?
Скрипт останавливается если натыкается на
script error: failure: entry already exists
как сделать игнорирование таких ошибок?
ответ лежал на том же сайте где и скрипт:
"Если после перехода на обновленную версию скрипта у вас появляются в логе микротика ошибки, содержащие текст: script error: failure: entry already exists, то рекомендую или ручками сперва снести все имеющиеся статические маршруты (оставив необходимые, разумеется), или выполнив в консоли /ip dns static remove [/ip dns static find];"
блин, смотрел на сайте, но не увидел. У меня действительно вручную были прописаны штук 5 адресов, не думал, что из-за них проблема)

спасибо!


ArtVAnt
Сообщения: 158
Зарегистрирован: 30 окт 2020, 15:00

А так и должно быть, что добавленный выше скриптом список - ttl постоянно обновляется до 1 дня, т.е. там весь список 23 часа 59 минут и постоянно скачет. Другие имена в кэше адекватно ttl отсчитывается обратным отсчетом, а этотм список постоянно скачет на 23.59
Изображение


ArtVAnt
Сообщения: 158
Зарегистрирован: 30 окт 2020, 15:00

и кстати я заметил, что у меня стоит cash max ttl - 2d, а в списке кэша он у всех не более 1d


Ответить