У меня есть несколько скриптов, которые требуют утилиты getent
. Кроме того, я прочитал несколько полезных советов, которые используют getent .
getent
это сетевая утилита, которая широко доступна в Unix, * BSD и Linux-системах. Этот инструмент обычно используется системными администраторами и опытными пользователями для поиска информации о сети (IP-адреса и т. Д.). Что касается имен хостов, getent
это один из немногих инструментов, которые используют /etc/hosts
и DNS.
Как говорит Википедия :
getent - это команда unix, которая помогает пользователю получить записи в ряде важных текстовых файлов, называемых базами данных.
Здесь важно то, что они getent
будут искать те же службы имен в том же порядке, что и большинство приложений в Unix-подобных системах. Это делает его бесценным при отладке системы или проблем приложения. Такие инструменты, как dig
и, в nslookup
частности, обращают внимание только на DNS, в то время как dscl
вы ожидаете, что вам будут прописаны службы имен, которые вы хотите найти.
Я хотел бы использовать getent
для двух тестовых случаев:
Разбирать
/etc/hosts
перед запросом DNS . Например, если я добавлюtesthost.example.org
в/etc/hosts
, тоgetent hosts testhost.example.org
должен использовать запись из/etc/hosts
перед запросом DNS.
MacPorts не предоставляет пакет услуг getent
.
Существует ли getent
на Snow Leopard?
источник
getent
? Что оно делает? На каких системах это обычно доступно?getent
OS X нет сопоставления 1: 1, потому что OS X использует DirectoryService для разрешения таких вещей, как имена хостов. Можете ли вы привести конкретныеgetent
примеры использования? Было бы проще показать вам соответствующий способ получить эту информацию в OS X.getent
обычно доступен в Unix, * BSD и Linux-подобных системах. Я обновил свой вопрос.getent
? Разрешить имена хостов/etc/hosts
перед использованием DNS?/etc/hosts
до DNS, что полезно для веб-сервера и других сетевых тестов. Но я (и другие системные администраторы) использую getent и для других целей, таких как устранение неполадок LDAP.Ответы:
dscacheutil
вероятно, лучший способ сделать это. Он не эмулирует обычный процесс поиска, он использует его, поэтому вы фактически получите те же результаты, что и стандартный поиск (включая кеширование, / etc / hosts, записи компьютеров в службах каталогов, DNS, mDNS для имен .local, так далее).источник
Посмотрите, как эмулировать гетент Unix с помощью MacOSX dscl . Поскольку у вас есть скрипты, которые
getent
вы можете использовать , вы можете использовать скрипт в качестве оболочки для dscl.источник
Это не ракетостроение - выискивать источник гетента из OpenSolaris (или другой ОС, я бы попробовал одну из BSD, а не Linux) и портировать ее; Я получил это, чтобы работать в основном, просто отключив материал, для которого у macOS не было эквивалента (маски масок и проекта - специфичные для Solaris). Или можно написать это на Perl довольно легко. Кто-то давным-давно сделал ограниченный, а я сделал более полный; он не поддерживает эфиры, потому что нет стандартного поиска по Perl, но все остальное работает нормально.
getent.pl
источник