설치 스크립트의 사전 실행 테스트로 호스트 이름이 127.0.0.1 이외의 이름으로 확인되는지 여부를 스크립트에서 테스트하고 싶습니다. 내가 아는 도구(dig, nslookup)는 구체적으로 DNS를 쿼리합니다. 내 경우에는 /etc/hosts의 올바른 항목이 유효한 구성이었습니다. 질문은 다음과 같습니다.
예를 들어 ping처럼 nsswitch.conf를 통해 전체 이름 확인 프로세스를 수행할 수 있는 발굴 도구(이미 시스템에 있는 것이 좋음)가 있습니까?
dig my-test-server-that-only-exists-in-etc-hosts
NXDOMAIN을 반환합니다.
답변1
SU에 대한 답변이 이미 있습니다.
Bash: 검색에서 /etc/hosts를 포함하여 IP에서 호스트 이름 찾기
기본적으로 당신은
getent ahosts host_name
여기서 호스트 이름은 사용자 항목 /etc/hosts
(이 경우 해당 항목으로 확인됨)이거나 DNS가 확인할 수 있는 호스트일 수 있습니다.
매뉴얼 getent(1)
페이지를 인용하면 다음과 같습니다.
주인
키가 제공되지 않으면 sethostent(3), gethostent(3) 및 endhostent(3)를 사용하여 호스트 데이터베이스를 열거합니다. 이는 호스트를 사용하는 것과 동일합니다. 하나 이상의 키 인수가 제공되면 각 키를 AF_UNSPEC 주소 계열의 getaddrinfo(3)에 연속적으로 전달하여 반환된 각 소켓 주소 구조를 열거합니다.