10 votes

Comment puis-je installer getent sur Snow Leopard ?

J'ai plusieurs scripts qui nécessitent l'utilitaire getent . En outre, j'ai lu plusieurs conseils pratiques qui utilisent getent .

getent est un utilitaire de mise en réseau qui est largement disponible sur les systèmes basés sur Unix, *BSD et Linux. Cet outil est couramment utilisé par les administrateurs système et les utilisateurs expérimentés pour rechercher des informations sur le réseau (adresses IP, etc.). En ce qui concerne les noms d'hôtes, getent est l'un des rares outils qui utilisent à la fois /etc/hosts et DNS.

Comme Wikipedia dit :

getent est une commande unix qui aide un utilisateur à obtenir des entrées dans un certain nombre de fichiers texte importants appelés bases de données.

La chose importante ici est que getent recherchera les services du même nom dans le même ordre que la plupart des applications sur un système de type Unix. Cela en fait un outil précieux pour le débogage des problèmes de système ou d'application. Des outils comme dig y nslookup s'intéressent spécifiquement au DNS uniquement, tandis que dscl vous attend pour épeler le nom des services que vous voulez rechercher.

Je voudrais utiliser getent pour deux cas d'essai :

  1. Analyser /etc/hosts avant d'interroger le DNS . Par exemple, si j'ajoute testhost.example.org à /etc/hosts alors getent hosts testhost.example.org doit utiliser l'entrée de /etc/hosts avant d'interroger le DNS.

  2. Interroger LDAP en utilisant getent

MacPorts ne semble pas fournir un paquet fournissant getent .

Fait getent existe sur Snow Leopard ?

10voto

Gordon Davisson Points 30215

dscacheutil est probablement le meilleur moyen de le faire. Elle n'émule pas le processus de recherche habituel, elle utilise Ainsi, vous obtiendrez les mêmes résultats qu'avec une recherche standard (y compris la mise en cache, /etc/hosts, les enregistrements d'ordinateur dans les services d'annuaire, DNS, mDNS pour les noms .local, 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 Points 150

Jetez un coup d'œil à Comment émuler le getent d'Unix avec le dscl de MacOSX ? . Puisque vous avez des scripts qui font usage de getent vous pouvez souhaiter poursuivre un script comme enveloppe autour de dscl.

1voto

R. Hamilton Points 29

Ce n'est pas sorcier de récupérer les sources d'OpenSolaris (ou d'un autre système d'exploitation, j'essaierais un des BSD plutôt que Linux) et de les porter ; j'ai réussi à les faire fonctionner principalement en désactivant les choses pour lesquelles MacOS n'avait pas d'équivalent (netmasks et projet - spécifique à Solaris). Ou on peut l'écrire en perl assez facilement. Quelqu'un en a fait un limité il y a longtemps, et j'en ai fait un plus complet ; il ne supporte pas les ethers parce qu'il n'y a pas de recherche standard pour cela depuis perl, mais le reste semble fonctionner correctement.

getent.pl

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X