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


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

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

$ 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.