Eu tenho vários scripts que requerem o utilitário getent
. Além disso, eu li várias dicas úteis que usam getent .
getent
é um utilitário de rede amplamente disponível em sistemas baseados em Unix, * BSD e Linux. Essa ferramenta é comumente usada por administradores de sistemas e usuários avançados para pesquisar informações de rede (endereços IP, etc.). No que diz respeito aos nomes de host, getent
é uma das poucas ferramentas que usam o /etc/hosts
DNS e o DNS.
Como a Wikipedia diz :
O getent é um comando unix que ajuda o usuário a obter entradas em vários arquivos de texto importantes chamados bancos de dados.
O importante aqui é que getent
procurará os mesmos serviços de nomes na mesma ordem que a maioria dos aplicativos em um sistema semelhante ao Unix. Isso o torna inestimável ao depurar problemas no sistema ou no aplicativo. Ferramentas como dig
e nslookup
especificamente analisam apenas o DNS, enquanto dscl
esperam que você especifique os serviços de nome que deseja pesquisar.
Eu gostaria de usar getent
para dois casos de teste:
Analise
/etc/hosts
antes de consultar o DNS . Por exemplo, se eu adicionartesthost.example.org
a/etc/hosts
,getent hosts testhost.example.org
deverá usar a entrada de/etc/hosts
antes de consultar o DNS.
O MacPorts parece não fornecer um pacote getent
.
Existe getent
no Snow Leopard?
fonte
getent
? O que isso faz? Em quais sistemas ele normalmente está disponível?getent
OS X porque o OS X usa o DirectoryService para resolver problemas como nomes de host. Você pode dar algunsgetent
exemplos específicos de uso? Isso mostraria a maneira correspondente de obter essas informações no OS X mais fácil.getent
normalmente está disponível em sistemas Unix, * BSD e Linux. Eu atualizei minha pergunta.getent
? Resolver nomes de host/etc/hosts
antes de usar o DNS?/etc/hosts
anteriores ao DNS, o que é útil para servidores da Web e outros testes de rede. Mas eu (e outros administradores de sistemas) também utilizamos o getent para outras coisas, como solucionar problemas de LDAP.Respostas:
dscacheutil
é provavelmente a melhor maneira de fazer isso. Ele não emula o processo de pesquisa usual, usa -o; portanto, você obtém os mesmos resultados de uma pesquisa padrão (incluindo cache, / etc / hosts, registros de computador nos serviços de diretório, DNS, mDNS para nomes .local, etc).fonte
Dê uma olhada em Como emular o Unix 'getent com o dscl do MacOSX . Como você possui scripts que os utilizam
getent
, convém prosseguir com um script como wrapper em torno do dscl.fonte
Não é ciência do foguete buscar a fonte getent do OpenSolaris (ou algum outro sistema operacional, eu tentaria um dos BSDs em vez do Linux) e portá-lo; Consegui que isso funcionasse principalmente desativando o material para o qual o macOS não tinha equivalente (máscaras de rede e projetos - específicos ao Solaris). Ou pode-se escrever em perl com bastante facilidade. Alguém fez um limitado há muito tempo, e eu fiz um mais completo; ele não suporta éteres porque não há pesquisa padrão para isso do perl, mas o resto parece funcionar bem.
getent.pl
fonte