유닉스 (Solaris)에는 호스트 이름과 도메인 이름을 함께 반환하는 명령이 있습니까?
예를 들어 :
hostname -> servername
domainname -> us.xyz.com
나는 필요하다 : servername.us.xyz.com
유닉스 (Solaris)에는 호스트 이름과 도메인 이름을 함께 반환하는 명령이 있습니까?
예를 들어 :
hostname -> servername
domainname -> us.xyz.com
나는 필요하다 : servername.us.xyz.com
답변:
명령
hostname --fqdn (or -f)
내 시스템에서 (none)
내가 실행할 때 얻는 이후로 원하는 것을 할 수도 있습니다.domainname
hostname(1)
Solaris 10 (sun4v) 및 내가 사용한 모든 이전 버전에 대한 맨 페이지에 따르면 --fqdn
사용할 수 없습니다. 호스트 이름을로 설정하려고 시도합니다 --fqdn
. 안전을 위해 슈퍼 유저가 아닌 사용자로 실행하면 'uname : 오류 설정 이름 : 소유자가 아님'이라고 표시됩니다. 이것은 분명히 주식 Solaris hostname
입니다. 포스터는 GNU 툴셋이 설치되어 있는지 여부를 나타내지 않습니다.
이것도 몇 년 동안 나를 괴롭 혔습니다. 난 그냥 말함으로써 해결
$(hostname).$(domainname)
쉘 함수 또는 별명을 정의 할 수 있습니다.
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
NIS를 실행중인 경우 실제로 NIS 도메인을보고합니다. 이것은 반드시 DNS 도메인 이름과 같을 필요는 없습니다.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
설정 하십시오. 이는 잘못된 생각 일 수 있습니다 (따라서 루트가 아닌지 확인하십시오). :) --fqdn
Solaris 11에서 지원됩니까?
check-hostname | awk '{print $ NF}'
나는 이것이 오래된 스레드라는 것을 알고 있지만 스크립트에서 호스트 이름과 도메인 이름을 별도로 가져와야합니다.
check-hostname을 사용하는 ealgumby의 답변은 내가 본 적이 없었으므로 내 요구에 큰 성공을 거두었습니다. 나는 그것을 유용한 것으로 표시하지만 분명히 그렇게 할 담당자가 없습니다.
check-hostname의 출력을 반복하여 다음과 같이 도메인을 설정했습니다.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
나는에 대한 약간의 해결 방법을 수행했습니다 hostname
과 host
:
$ host $(hostname -i) | awk '{print $NF }'
(나는 Centos를 사용하고 있지만 다른 곳에서 작동해야합니다)
후행 점없이 도메인 얻기 :
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
호스트 이름에 해당하는 IP 주소를 인쇄하십시오.
host
command에 전달합니다 . 이렇게하면 다음과 같은 결과를 얻을 수 있습니다. YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
awk를 사용하면 마지막 열인hostname.domainname
host $(hostname -i)
하면 8 개의 호스트 이름, 모두 동일한 IP를 가지고 있고 호스트에 해당하는 호스트 이름이없는 목록이 표시됩니다.
host
명령에 대한 별칭이 없습니까? 명령 host
에 별명이있는 것 같습니다host -a
솔라리스에서 이것은 나에게 잘 작동했습니다 : 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
Sun Solaris 10의 Unix bash 스크립트에서 방금 다음과 같이 호스트 이름을 표시했습니다.
echo "내 호스트 이름은 $ (hostname)입니다"
printf "%s" "$(hostname) $(domainname)"
작동하지?