Як можна встановити гетен на Snow Leopard?


9

У мене є кілька сценаріїв, які потребують утиліти getent. Крім того, я прочитав кілька зручних порад, які використовують гетент .

getentце утиліта для мереж, яка широко доступна в системах Unix, * BSD та Linux. Цей інструмент зазвичай використовується Sysadmins та енергетичними користувачами для пошуку мережевої інформації (IP-адреси тощо). Що стосується імен хостів, getentце один з небагатьох інструментів, який використовує /etc/hostsі DNS, і DNS.

Як говорить Вікіпедія :

getent - це команда unix, яка допомагає користувачеві отримувати записи у ряд важливих текстових файлів, що називаються базами даних.

Тут важливо те, що вони getentбудуть шукати одні і ті ж сервіси з назвою в тому ж порядку, що і в більшості програм у системі, схожій на unix. Це робить його безцінним при налагодженні проблем із системою чи додатками. Інструменти на кшталт digі nslookupспеціально розглядають лише DNS, тоді як dsclви очікуєте, що вам потрібно прописати служби імен, які ви хочете шукати.

Я хотів би використовувати getentдля двох тестів:

  1. Проаналізуйте /etc/hostsперед запитом DNS . Наприклад, якщо я додаю testhost.example.orgдо /etc/hosts, тоді getent hosts testhost.example.orgслід використовувати запис, /etc/hostsперш ніж запитувати DNS.

  2. Запросити LDAP з використанням getent

MacPorts, схоже, не забезпечує пакет getent.

Чи getentіснує на Snow Leopard?


Що таке getent? Що це робить? На яких системах він зазвичай доступний?
Каджунлуке

3
Немає відображення для getentOS X 1: 1, оскільки OS X використовує DirectoryService для вирішення таких речей, як імена хостів. Чи можете ви навести конкретні getentприклади використання? Це полегшило б показати вам відповідний спосіб отримати цю інформацію про OS X.
Ян C.

@CajunLuke: getentзазвичай доступний для Unix, * BSD та Linux-подібних систем. Я оновив своє запитання.
Стефан Ласєвський

То що ви намагаєтеся зробити getent? Вирішити імена хостів, /etc/hostsперш ніж використовувати DNS?
Ян C.

Найпоширенішим моїм випадком є ​​вирішення /etc/hostsімен хостів раніше, ніж DNS, що корисно для тестів веб- сервера та інших мереж. Але я (та інші сисадміни) також використовую гетент для інших речей, таких як усунення несправностей LDAP.
Стефан Ласєвський

Відповіді:


9

dscacheutilце, мабуть, найкращий спосіб зробити це. Він не імітує звичайний процес пошуку, він використовує його, тому ви фактично отримаєте ті самі результати, що і стандартний пошук (включаючи кешування, / тощо / хости, комп'ютерні записи в службах каталогів, DNS, mDNS для .local імен, тощо).

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 69.192.45.15

$ dscacheutil -q host -a name gordons-mbp.local
name: gordons-mbp.local
ipv6_address: fe80:5::e6ce:8fff:fe50:136

name: gordons-mbp.local
ip_address: 192.168.10.249

$ dscacheutil -q host -a ip_address 127.0.0.1
name: localhost
alias: 1.0.0.127.in-addr.arpa 
ip_address: 127.0.0.1

$ dscacheutil -q user -a name gordon
name: gordon
password: ********
uid: 501
gid: 20
dir: /Users/gordon
shell: /bin/bash
gecos: Gordon Davisson


2

Це не ракетна наука, щоб відскакувати гетентний джерело з OpenSolaris (або якоїсь іншої ОС, я б спробував один з BSD, а не Linux) і перенести його; Я змусив це працювати, головним чином, просто відключивши те, для чого macOS не мав жодного еквівалента (мережеві маски та проект - специфічний для Solaris). Або ви можете написати це в perl досить легко. Хтось робив обмежений давно, а я більш повний; він не підтримує ефіри, тому що для Perl немає стандартного пошуку, але решта, здається, працює нормально.

getent.pl

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.