web-dev-qa-db-ja.com

ドメイン名とともにホスト名を取得するにはどうすればよいですか?

Unix(Solaris)でホスト名とドメイン名を一緒に返すコマンドはありますか?

例えば:

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

私は欲しい : servername.us.xyz.com

18
Vikas

これは、ドメインがresolv.confで正しく設定されている場合に機能します。 NISドメイン名がDNSドメインと同じである場合は、他の人が述べたdomainnameコマンドを使用することもできます。

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

コマンド

hostname --fqdn (or -f)

私のシステムでは(none)を実行するとdomainname

13
Elwillow

これも長年私を悩ませてきました。私は言ってそれを回避します

$(hostname).$(domainname)

Shell関数またはエイリアスを定義できます。

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

チェックホスト名| awk '{print $ NF}'

4
ealgumby

これは古いスレッドであることは知っていますが、スクリプトでホスト名とドメイン名を個別に取得する必要がありました。

ealgumbyがcheck-hostnameを使用することに対する応答は、私がこれまでに見たことのないものだったので、自分のニーズに合わせて大きな成功を試みました。私はそれを役に立ったとマークしますが、どうやらそうするための担当者がいません。

ドメインを次のように設定して、check-hostnameからの出力をループします。

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

hostnameHostの回避策を少し試しました。

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

(私はCentosを使用していますが、他の場所でも動作するはずです)

末尾のドットなしでドメインを取得する:

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

Solarisではこれがうまくいきました:バックティックで申し訳ありません。それはqwertyキーボードの番号1の横の逆引用符であるか、KSHで$(コマンド)を使用できます

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にない別のホストのホスト情報を検索すると、/etc/nsswitch.confで定義されているDNSが検索されます

0
Blaise