Come posso installare getent su Snow Leopard?

8

Ho diversi script che richiedono l'utilità getent . Inoltre, ho letto diversi consigli pratici che utilizzano getent .

getent è un'utilità di rete che è ampiamente disponibile su sistemi Unix, * BSD e basati su Linux. Questo strumento è comunemente utilizzato da amministratori di sistema e utenti esperti per cercare informazioni di rete (indirizzi IP, ecc.). Per quanto riguarda i nomi degli host, getent è uno dei pochi strumenti che utilizzano sia /etc/hosts che DNS.

Come Wikipedia dice :

getent is a unix command that helps a user get entries in a number of important text files called databases.

La cosa importante è che getent cercherà gli stessi servizi dei nomi nello stesso ordine della maggior parte delle applicazioni su un sistema unix-like. Ciò lo rende inestimabile durante il debug del sistema o problemi dell'applicazione. Strumenti come dig e nslookup guardano specificamente solo al DNS, mentre dscl si aspetta che tu spieghi i servizi di nome che vuoi cercare.

Vorrei utilizzare getent per due test:

  1. Analizza /etc/hosts prima di eseguire query su DNS . Ad esempio, se aggiungo testhost.example.org a /etc/hosts , quindi getent hosts testhost.example.org deve utilizzare la voce da /etc/hosts prima di eseguire una query su DNS.

  2. Query LDAP utilizzando getent

MacPorts non sembra fornire un pacchetto che fornisce getent .

Esiste getent su Snow Leopard?

    
posta Stefan Lasiewski 20.03.2012 - 00:41
fonte

2 risposte

7

dscacheutil è probabilmente il modo migliore per farlo. Non emula il solito processo di ricerca, lo usa , in modo da ottenere gli stessi risultati di una ricerca standard (inclusa la memorizzazione nella cache, / etc / hosts, i record del computer nei servizi di directory, DNS , mDNS per i nomi .local, ecc.)

$ 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
    
risposta data 12.03.2013 - 20:24
fonte
3

Dai un'occhiata a Come emulare Unix 'capita con dscl di MacOSX . Poiché hai script che fanno uso di getent , potresti voler seguire uno script come wrapper attorno a dscl.

    
risposta data 20.03.2012 - 08:44
fonte

Leggi altre domande sui tag