10 votos

¿Cómo puedo instalar getent en Snow Leopard?

Tengo varios scripts que requieren la utilidad getent . Además, he leído varios consejos útiles que utilizan getent .

getent es una utilidad de red ampliamente disponible en sistemas basados en Unix, *BSD y Linux. Esta herramienta es comúnmente usada por Sysadmins y usuarios avanzados para buscar información de red (direcciones IP, etc). En cuanto a los nombres de host, getent es una de las pocas herramientas que utilizan tanto /etc/hosts y DNS.

Como Wikipedia dice :

getent es un comando de unix que ayuda al usuario a obtener entradas en una serie de archivos de texto importantes llamados bases de datos.

Lo importante aquí es que getent buscará los mismos servicios de nombre en el mismo orden que lo harían la mayoría de las aplicaciones en un sistema tipo Unix. Esto lo hace inestimable a la hora de depurar problemas del sistema o de la aplicación. Herramientas como dig y nslookup se fijan específicamente en el DNS, mientras que dscl espera que deletrees el nombre de los servicios que quieres buscar.

Me gustaría utilizar getent para dos casos de prueba:

  1. Parse /etc/hosts antes de consultar el DNS . Por ejemplo, si añado testhost.example.org a /etc/hosts entonces getent hosts testhost.example.org debe utilizar la entrada de /etc/hosts antes de consultar el DNS.

  2. Consulta de LDAP con getent

MacPorts no parece ofrecer un paquete que proporcione getent .

En getent existen en Snow Leopard?

0 votos

¿Qué es? getent ? ¿Qué hace? ¿En qué sistemas suele estar disponible?

3 votos

No hay un mapeo 1:1 para getent en OS X porque éste utiliza Servicio de directorio para hacer la resolución de cosas como los nombres de host. ¿Puede dar algún dato específico getent ¿usar ejemplos? Sería más fácil mostrarte la forma correspondiente de obtener esa información en OS X.

0 votos

@CajunLuke : getent suele estar disponible en sistemas Unix, *BSD y similares a Linux. He actualizado mi pregunta.

10voto

Nate Puntos 220

dscacheutil es probablemente la mejor manera de hacerlo. No emula el proceso de búsqueda habitual, sino que utiliza por lo que obtendrá los mismos resultados que una búsqueda estándar (incluyendo el almacenamiento en caché, /etc/hosts, registros de equipo en los servicios de directorio, DNS, mDNS para nombres .locales, etc.).

$ 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

4voto

Matt Puntos 150

Echa un vistazo a Cómo emular el getent de Unix con el dscl de MacOSX . Ya que tiene scripts que hacen uso de getent , es posible que desee seguir un script como una envoltura alrededor de dscl.

1voto

SonalKhodiyar Puntos 161

No es una ciencia de cohetes gorronear el código fuente de OpenSolaris (o algún otro sistema operativo, yo probaría con uno de los BSD en lugar de Linux) y portarlo; yo conseguí que funcionara principalmente desactivando las cosas para las que MacOS no tenía ningún equivalente (máscaras de red y proyectos - específicos de Solaris). O uno puede escribirlo en perl con bastante facilidad. Alguien hizo uno limitado hace mucho tiempo, y yo hice uno más completo; no soporta éteres porque no hay una búsqueda estándar para eso desde perl, pero el resto parece funcionar bien.

getent.pl

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X