Unix(Solaris)でホスト名とドメイン名を一緒に返すコマンドはありますか?
例えば:
hostname -> servername
domainname -> us.xyz.com
私は欲しい : servername.us.xyz.com
これは、ドメインがresolv.confで正しく設定されている場合に機能します。 NISドメイン名がDNSドメインと同じである場合は、他の人が述べたdomainnameコマンドを使用することもできます。
echo `uname -n`.`awk '/^domain/ {print $2}' /etc/resolv.conf`
コマンド
hostname --fqdn (or -f)
私のシステムでは(none)
を実行するとdomainname
これも長年私を悩ませてきました。私は言ってそれを回避します
$(hostname).$(domainname)
Shell関数またはエイリアスを定義できます。
fqdn () {
echo $(hostname).$(domainname)
}
チェックホスト名| awk '{print $ NF}'
これは古いスレッドであることは知っていますが、スクリプトでホスト名とドメイン名を個別に取得する必要がありました。
ealgumbyがcheck-hostnameを使用することに対する応答は、私がこれまでに見たことのないものだったので、自分のニーズに合わせて大きな成功を試みました。私はそれを役に立ったとマークしますが、どうやらそうするための担当者がいません。
ドメインを次のように設定して、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)}'
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が検索されます