V Unixu (Solaris) existuje nějaký příkaz, který vrací hostitelské jméno a doménové jméno dohromady?
Například:
hostname -> servername
domainname -> us.xyz.com
Potřebuji : servername.us.xyz.com
Toto bude fungovat, pokud je vaše doména správně nastavena v resolv.conf. Můžete také použít příkaz název_domény, který ostatní uvedli, pokud je vaše doménové jméno NIS stejné jako vaše doména DNS.
echo `uname -n`.`awk '/^domain/ {print $2}' /etc/resolv.conf`
Příkaz
hostname --fqdn (or -f)
může také dělat to, co chcete nebo ne, protože v mém systému dostanu (none)
když spustím domainname
Tohle mě už roky trápí. Prostě to obejdu říkáním
$(hostname).$(domainname)
Můžete definovat funkci Shell nebo alias:
fqdn () {
echo $(hostname).$(domainname)
}
check-hostname | awk '{print $ NF}'
Vím, že se jedná o starší vlákno, ale musel jsem ve skriptu táhnout zvlášť jméno hostitele a název domény.
odpověď ealgumby na použití check-hostname bylo něco, co jsem nikdy předtím neviděl, a tak jsem se pokusil o velký úspěch pro své potřeby. Označil bych to jako užitečné, ale očividně nemám zástupce, aby to udělal.
Doménu jsem nastavil následujícím způsobem, aby se točilo přes výstup z check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Udělal jsem trochu řešení pro hostname
a Host
:
$ Host $(hostname -i) | awk '{print $NF }'
(Používám Centos, ale mělo by to fungovat jinde)
Získání domény bez koncové tečky:
$ Host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
Na Solaris mi to fungovalo dobře: omlouvám se za backtick, je to obrácený citát vedle čísla 1 na qwerty klávesnici nebo můžete použít $ (příkaz) v KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
nebo
getent hosts $(/usr/bin/hostname)
příklad:
[email protected]:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
[email protected]:[/]#
getent dotazuje mechanismus pro vyhledávání aktuálních jmen, jak je uvedeno v /etc/nsswitch.conf, a vrací informace, které odpovídají vyhledávání, zde vrací informace, které byly nalezeny v /etc/hosts
. pokud hledáte informace o hostiteli pro jiného hostitele, který není v /etc/hosts
, bude vypadat v DNS za předpokladu, že je to, co je definováno v /etc/nsswitch.conf