도메인 이름과 함께 호스트 이름을 얻는 방법은 무엇입니까?


18

유닉스 (Solaris)에는 호스트 이름과 도메인 이름을 함께 반환하는 명령이 있습니까?

예를 들어 :

hostname -> servername
domainname -> us.xyz.com

나는 필요하다 : servername.us.xyz.com


2
않습니다 printf "%s" "$(hostname) $(domainname)"작동하지?
jasonwryan

충분히 내가 이렇게 희망이 될 것 "호스트 이름 -f"사용하려고
abhishek 쿠마 스리 바스타

답변:


14

도메인이 resolv.conf에 올바르게 설정된 경우 작동합니다. NIS 도메인 이름이 DNS 도메인과 동일한 경우 다른 사람들이 언급 한 domainname 명령을 사용할 수도 있습니다.

echo `uname -n`.`awk '/^domain/ {print $2}' /etc/resolv.conf`

13

명령

hostname --fqdn (or -f)

내 시스템에서 (none)내가 실행할 때 얻는 이후로 원하는 것을 할 수도 있습니다.domainname


8
hostname(1)Solaris 10 (sun4v) 및 내가 사용한 모든 이전 버전에 대한 맨 페이지에 따르면 --fqdn사용할 수 없습니다. 호스트 이름을로 설정하려고 시도합니다 --fqdn. 안전을 위해 슈퍼 유저가 아닌 사용자로 실행하면 'uname : 오류 설정 이름 : 소유자가 아님'이라고 표시됩니다. 이것은 분명히 주식 Solaris hostname입니다. 포스터는 GNU 툴셋이 설치되어 있는지 여부를 나타내지 않습니다.
Alexios

5

이것도 몇 년 동안 나를 괴롭 혔습니다. 난 그냥 말함으로써 해결

$(hostname).$(domainname)

쉘 함수 또는 별명을 정의 할 수 있습니다.

fqdn () {
    echo $(hostname).$(domainname)
}

4
domainnnameNIS를 실행중인 경우 실제로 NIS 도메인을보고합니다. 이것은 반드시 DNS 도메인 이름과 같을 필요는 없습니다.
Magellan

아닙니다. 그러나 옐로우 페이지이기 때문에 NIS를 피하거나 피할 수 있었기 때문에 나는 그것을 알지 못했습니다. :) 그래서이 있다 국정원의 일이 다른 경우 도메인 이름을 얻을 수있는 신뢰할 수있는 방법이 있습니까?
Alexios

NIS를 피했다는 축복을받습니다. 성가시다. 그리고 모질라 썬더 버드 팀도 2.0의 기본 응답에 대한 '도메인 이름'출력에 의존하기 때문에이 문제를 해결했습니다. 실제 도메인 이름으로 다음을 사용합니다hostname --fqdn | cut -d. -f2-4
Magellan

1
이것은 Linux에서 잘 작동합니다. Solaris에서 최소 10 개까지 호스트 이름을 '--fqdn'으로 hostname --fqdn 설정 하십시오. 이는 잘못된 생각 일 수 있습니다 (따라서 루트가 아닌지 확인하십시오). :) --fqdnSolaris 11에서 지원됩니까?
Alexios

1
야! 실수로 호스트 이름을 설정하는 것은 쉽지 않으며 OP는 Solaris라고 말했습니다. 감사!
마젤란

4

check-hostname | awk '{print $ NF}'


2
비전문가를 위해 조금 설명해주세요.
vonbrand

요약 / usr / sbin / check-hostname 설명 check-hostname 스크립트는 sendmail (1M)의 마이그레이션 지원 도구입니다. 이 스크립트는 sendmail (1M)과 비슷한 방식으로 로컬 호스트의 FQHN (정규화 된 호스트 이름)을 확인하려고합니다. check-hostname이 로컬 호스트의 FQHN을 판별 할 수 있으면 성공을보고합니다. 그렇지 않으면 check-hostname은 FQHN을 올바르게 결정할 수 있도록 시스템을 재구성하는 방법을보고합니다.
ealgumby

/ usr / sbin / check-hostname은 FQDN이 정의 된 경우 Solaris 시스템에서 FQDN을보고합니다. 출력을 awk로 파이핑하고 print $ NF를 사용하면 check-hostname (FQDN)의 마지막 출력 필드 만보고됩니다. 이것은 정규화 된 도메인 이름이 있다고 가정 할 때 명령 줄에서이 정보를 얻는 가장 직접적인 방법입니다. 그렇지 않은 경우에는 작동하지 않지만 호스트 이름이 전부인 것처럼 표시하지 않아도됩니다. Solaris를 사용하지 않는 경우에도 작동하지 않지만 쿼리는 Solaris에 대한 것입니다.
ealgumby

심각하게도 이것이 어떻게 대답하지 않는지 이해하지 못했습니다. "유닉스 (Solaris)에는 호스트 이름과 도메인 이름을 함께 반환하는 명령이 있습니까?" 대답은 "예"이며 해당 명령은 다음과 같습니다. check-hostname | awk '{print $ NF}'
ealgumby

3
실제 답변은 귀하의 의견에 있습니다. 설명이 거의없는 (또는 귀하의 경우에는 없음) 한 줄 명령을 내리는 것은이 웹 사이트에 대한 답변이 아닙니다.
rahmu

2

나는 이것이 오래된 스레드라는 것을 알고 있지만 스크립트에서 호스트 이름과 도메인 이름을 별도로 가져와야합니다.

check-hostname을 사용하는 ealgumby의 답변은 내가 본 적이 없었으므로 내 요구에 큰 성공을 거두었습니다. 나는 그것을 유용한 것으로 표시하지만 분명히 그렇게 할 담당자가 없습니다.

check-hostname의 출력을 반복하여 다음과 같이 도메인을 설정했습니다.

domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}

1

나는에 대한 약간의 해결 방법을 수행했습니다 hostnamehost:

$ host $(hostname -i) | awk '{print $NF }'

(나는 Centos를 사용하고 있지만 다른 곳에서 작동해야합니다)

후행 점없이 도메인 얻기 :

$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'

내 우분투에서 hostname -i호스트 이름에 해당하는 IP 주소를 인쇄하십시오.
Archemar

네 맞습니다. 그래서이 IP를 host command에 전달합니다 . 이렇게하면 다음과 같은 결과를 얻을 수 있습니다. YOUR_IP.in-addr.arpa domain name pointer hostname.domainname. awk를 사용하면 마지막 열인hostname.domainname
user1314742

불행히도 사용 host $(hostname -i)하면 8 개의 호스트 이름, 모두 동일한 IP를 가지고 있고 호스트에 해당하는 호스트 이름이없는 목록이 표시됩니다.
Archemar

host명령에 대한 별칭이 없습니까? 명령 host에 별명이있는 것 같습니다host -a
user1314742

0

솔라리스에서 이것은 나에게 잘 작동했습니다 : backtick에 대해 유감스럽게도, qwerty 키보드에서 숫자 1 옆의 역 인용 부호이거나 KSH에서 $ (command)를 사용할 수 있습니다

getent hosts (backtick) /usr/bin/hostname (backtick)

또는

getent hosts $(/usr/bin/hostname)

예:

root@melauto:[/]# getent hosts $(/usr/bin/hostname)

10.4.19.241     melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]# 

getent는 /etc/nsswitch.conf에 지정된대로 현재 이름 검색 메커니즘을 쿼리하고 검색과 일치하는 정보를 반환합니다. 여기서는에있는 정보를 반환합니다 /etc/hosts. 에없는 다른 호스트에 대한 호스트 정보를 검색하면 /etc/hosts에 정의 된 DNS 호스트를 찾습니다./etc/nsswitch.conf


-2

Sun Solaris 10의 Unix bash 스크립트에서 방금 다음과 같이 호스트 이름을 표시했습니다.

echo "내 호스트 이름은 $ (hostname)입니다"


"도메인 이름과 함께"
Michael Mrozek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.