Как очистить кэш DNS на DD-WRT

Я должен предположить, что Вы говорите о bash или некоторая другая усовершенствованная оболочка, потому что оболочка posix не имеет замены процесса.

bash отчеты страницы руководства:

Замена процесса
Замена процесса поддерживается в системах, которые поддерживают именованные каналы (FIFOs) или/dev/fd метод именования открытых файлов. Это принимает форму <(список) или> (список). Список процессов выполняется с его вводом или выводом, подключенным к FIFO или некоторому файлу в/dev/fd. Название этого файла передается как аргумент текущей команде как результат расширения. Если> (список) форма будет использоваться, то писание в файл обеспечит вход для списка. Если <(список) форма используется, файл передал, поскольку аргумент должен быть считан для получения вывода списка.

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

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

<(commands)

как имя файла для других команд, требующих файла в качестве параметра. Или можно использовать перенаправление для такого файла:

while read line; do something; done < <(commands)

Возвращаясь к Вашему вопросу, мне кажется, что у замены процесса и каналов есть не очень общий.

Если Вы хотите передать по каналу в последовательности вывод нескольких команд, можно использовать одну из следующих форм:

(command1; command2) | command3
{ command1; command2; } | command3

но можно также использовать перенаправление на замене процесса

command3 < <(command1; command2)

наконец, если command3 принимает параметр файла (в замене stdin)

command3 <(command1; command2)
27
14.10.2011, 02:06
5 ответов

Согласно Сбросу dnsmasq кэш DNS:

dnsmasq является легкий DNS, TFTP и сервер DHCP. Это предназначается для обеспечения связанного DNS и сервиса DHCP к LAN. Dnsmasq принимает запросы DNS и или отвечает на них от маленького, локального, кэша или вперед их к реальному, рекурсивному, серверу DNS. Это программное обеспечение также установлено много дешевых маршрутизаторов для кэширования запросов DNS. Просто перезапуск для спугивания кэша DNS:

# stopservice dnsmasq
# startservice dnsmasq
22
27.01.2020, 19:39
  • 1
    На dd-wrt нет никакого "sudo". Нет/etc/init.d на dd-wrt, ни любого эквивалента. –  WhyNotHugo 06.05.2012, 06:28
  • 2
    Хм... Код был просто быстрым примером. Возможно, я должен удалить его. Кроме того, Вы знаете корректную команду для этого ENV? –  Justin Ethier 06.05.2012, 16:09
  • 3
    Другой ответ имеет единственный способ, о котором я знаю для перезапуска сервисов на dd-wrt. Не слишком чистый, но я не знаю никакой другой путь. –  WhyNotHugo 07.05.2012, 00:15
  • 4
    Как насчет stopservice dnsmasq сопровождаемый startservice dnsmasq? Посмотрите barrymorrison.com/tag/dd-wrt –  Justin Ethier 07.05.2012, 05:08
  • 5
    Не услышал об этом. Не нашел его после быстрого Google также. Отличной работе :) –  WhyNotHugo 07.05.2012, 09:35

С тех пор нет никаких init сценариев на DD-WRT, я предполагаю, что это было бы самым легким способом перезапустить dnsmasq:

  1. Уничтожьте dnsmasq:

    root@ddwrt6:~# killall dnsmasq
    
  2. Запустите dnsmasq:

    root@ddwrt6:~# dnsmasq --conf-file=/tmp/dnsmasq.conf 
    
7
27.01.2020, 19:39

Я всегда использовал:

killall -1 dnsmasq

который хорошо работал для меня. Я выполняю некоторые более новые версии DD-WRT и

stopservice dnsmasq
startservice dnsmasq

также, казалось, работал без ошибки или нуждающийся sudo...

3
27.01.2020, 19:39
killall -1 dnsmasq

Отправьте Сигнал HUP, чтобы сказать, что он сбрасывает кэш перечитанный его конфигурация, таким образом запускающаяся с чистого листа.

19
27.01.2020, 19:39
  • 1
    я думаю с помощью SIGHUP, является самым чистым методом, потому что страница справочника отмечает это, и dnsmasq может не очистить кэш на перезапуске. Хотя я поместил бы # killall -HUP dnsmasq вместо # killall -1 dnsmasq потому что легче помнить/понимать. –  James Haigh 21.04.2014, 00:51
  • 2
    На самом деле это не заставляет это перечитывать свою конфигурацию – что часть является неправильной – но это не имеет значения для вопроса, потому что конфигурация не должна быть перечитана для очистки кэша. –  James Haigh 21.04.2014, 01:06

Перезапустите службу dnsmasq либо из пользовательского интерфейса.

Или из интерфейса командной строки через

/init.d/dnsmasq restart
2
27.01.2020, 19:39

Теги

Похожие вопросы