Tengo varios scripts que requieren la utilidad getent
. Además, he leído varios consejos útiles que usan getent .
getent
es una utilidad de red que está ampliamente disponible en Unix, * BSD y sistemas basados en Linux. Los administradores de sistemas y los usuarios avanzados suelen utilizar esta herramienta para buscar información de red (direcciones IP, etc.). En lo que respecta a los nombres de host, getent
es una de las pocas herramientas que usan ambos /etc/hosts
y DNS.
Como dice Wikipedia :
getent es un comando unix que ayuda al usuario a obtener entradas en varios archivos de texto importantes llamados bases de datos.
Lo importante aquí es que getent
buscará los mismos servicios de nombres en el mismo orden que la mayoría de las aplicaciones en un sistema similar a Unix. Esto lo hace invaluable al depurar problemas del sistema o de la aplicación. Las herramientas tienen gusto dig
y nslookup
miran específicamente el DNS solamente, mientras que dscl
espera que deletree los servicios de nombres que desea buscar.
Me gustaría usar getent
para dos casos de prueba:
Analizar
/etc/hosts
antes de consultar DNS . Por ejemplo, si agregotesthost.example.org
a/etc/hosts
, entoncesgetent hosts testhost.example.org
debería usar la entrada de/etc/hosts
antes de consultar DNS.
MacPorts no parece proporcionar un paquete que proporcione getent
.
¿Existe getent
en Snow Leopard?
fuente
getent
? ¿Qué hace? ¿En qué sistemas está típicamente disponible?getent
OS X porque OS X usa DirectoryService para resolver problemas como nombres de host. ¿Puedes dar algunosgetent
ejemplos de uso específicos ? Haría que mostrarte la forma correspondiente de obtener esa información en OS X más fácil.getent
normalmente está disponible en Unix, * BSD y sistemas similares a Linux. Actualicé mi pregunta.getent
? ¿Resolver nombres de host/etc/hosts
antes de usar DNS?/etc/hosts
anteriores a DNS, lo cual es útil para el servidor web y otras pruebas de red. Pero yo (y otros administradores de sistemas) también uso getent para otras cosas, como la solución de problemas de LDAP.Respuestas:
dscacheutil
Es probablemente la mejor manera de hacer esto. No emula el proceso de búsqueda habitual, lo usa , por lo que en realidad obtendrá los mismos resultados que una búsqueda estándar (incluyendo almacenamiento en caché, / etc / hosts, registros de computadora en servicios de directorio, DNS, mDNS para nombres locales, etc)fuente
Eche un vistazo a Cómo emular el contenido de Unix con dscl de MacOSX . Como tiene secuencias de comandos que utilizan
getent
, es posible que desee buscar una secuencia de comandos como envoltorio alrededor de dscl.fuente
No es ciencia de cohetes rastrear la fuente getent de OpenSolaris (o algún otro sistema operativo, probaría uno de los BSD en lugar de Linux) y portarlo; Conseguí que funcionara principalmente deshabilitando las cosas para las que macOS no tenía ningún equivalente (máscaras de red y proyecto, específicos de Solaris). O se puede escribir en perl con bastante facilidad. Alguien hizo una limitada hace mucho tiempo, y yo hice una más completa; no admite éteres porque no hay una búsqueda estándar para eso de perl, pero el resto parece funcionar bien.
getent.pl
fuente