Как считать локальное содержание кэша DNS?

Один ответ на Ваш вопрос должен использовать emacs с M-x eshell. Это дает Вам довольно полную функциональность оболочки в emacs. Взятие быстрых быстрых взглядов на файлы может, очевидно, быть сделано путем открытия их в редакторе, но что еще более важно можно использовать его функциональность поиска для поиска назад через буфер для любого более раннего вывода (или любых более ранних подсказок).

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

33
07.01.2012, 21:56
3 ответа

nscd служба имен, Кэширующая Демона. Это - утилита что Linux, Солярис и другое использование для кэширования поисков службы имен. Служба имен в этом случае является общим обозначением, не строго ограниченным для хостинга разрешения, но также и пользователей, групп, и т.д.

Я не знаю о способе видеть фактическое содержание кэша, хотя можно отобразить статистику с /usr/sbin/nscd -g.

Это может, по крайней мере, показать Вам, насколько эффективный Ваш кэш, хотя не точно, что он разрешает.

У Вас могут быть другие опции при использовании альтернативного инструмента кэширования, как DNSMASQ.

9
27.01.2020, 19:37

В приведенном примере все они сохранят cluster1 в переменной $ name :

  1. sed

     name = $ (sed 's/. * = «\(. *\) ». */\1/' < < < $ последовательности)
    
  2. GNU grep (скомпилировано с поддержкой PCRE)

     name = $ (grep -oP '[^ «] + (? = »/>)' < < $ последовательности)
    
  3. Perl

     name = $ (perl -pe 's/. * = «(. *)». */\1/' < < $ последовательности)
    

Если вы не поддерживаете оператора < < < , измените ваш предпочтительный подход на использование printf или echo вместо

name=$(printf '%s' "$string" | sed 's/.*="\(.*\)".*/\1/')
name=$(printf '%s' "$string" | grep -oP '[^"]+(?="/>)')
name=$(printf '%s' "$string" | perl -pe 's/.*="(.*)".*/\1/')

ВАЖНО : это только будет работать над показанным примером. Для более сложных структур XML, включая вложенные тэги и т.д., действительно следует использовать выделенный синтаксический анализатор XML.

-121--254103-

Я получил эту ошибку:

dpkg: considering deconfiguration of sysvinit-utils, which would 
      be broken by installation of startpar ...
dpkg: no, sysvinit-utils is essential, will not deconfigure
      it in order to enable installation of startpar
dpkg: error processing archive 
   /var/cache/apt/archives/startpar_0.59-3_amd64.deb (--unpack):
installing startpar would break existing software

Вот как я ее исправил:

dpkg --auto-deconfigure --force-remove-essential -i   \
             /var/cache/apt/archives/startpar_0.59-3_amd64.deb \
             /var/cache/apt/archives/sysvinit-utils_2.88dsf-59_amd64.deb 

Обновление, которое я делал, продолжилось.

-121--99100-

До systemd почти не было кэширования DNS на уровне ОС

До systemd не было кэширования DNS на уровне ОС в Linux (и, вероятно, в большинстве Unix), если не было установлено nscd или dnsmasq и

Даже тогда функция DNS-кэширования nscd была отключена по умолчанию в Debian, по крайней мере, просто потому, что она нарушена .

Что касается dnsmasq , по умолчанию кэширование выполняется в ОЗУ .

15
27.01.2020, 19:37

Если вы используете nscd, вы можете просмотреть содержимое (и, возможно, некоторый другой мусор), показывая ASCII строки из файла бинарного кэша. В Debian/Ubuntu этот файл - /var/cache/nscd/hosts для кэша hosts/DNS, поэтому вы можете выполнить strings /var/cache/nscd/hosts, чтобы увидеть хосты в кэше.

Обратите внимание, что это полная халтура, так как, похоже, нет подходящего способа проверить кэш nscd без декодирования двоичного формата.

4
27.01.2020, 19:37

Теги

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