UNIX(Solaris)には、ホスト名とドメイン名を一緒に返すコマンドがありますか?
例えば:
hostname -> servername
domainname -> us.xyz.com
私は欲しい : servername.us.xyz.com
UNIX(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
設定しますが、これはおそらく悪い考えです(試してみる場合は、rootでないことを確認してください)。:) --fqdn
Solaris 11でサポートされていますか?
チェックホスト名| 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
です。このIPをcommand に渡します。これはあなたにこのような何かを得るでしょう: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
AWKで私はある最後の列を取得hostname.domainname
host $(hostname -i)
、8つのホスト名のリストがあり、すべて同じIPを持ち、ホストに対応するホスト名はありません
host
コマンドのエイリアスがないことを確認しますか?コマンドにhost
は次のエイリアスがあるようですhost -a
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
で定義されているDNSが検索されます。/etc/nsswitch.conf
Unix bashスクリプトでは、Sun Solaris 10で次のようにホスト名を表示しました。
echo "私のホスト名は$(hostname)"です
printf "%s" "$(hostname) $(domainname)"
ませんか?