Czy w Unixie (Solaris) jest jakieś polecenie, które zwraca nazwę hosta i nazwę domeny razem?
Na przykład:
hostname -> servername
domainname -> us.xyz.com
Potrzebuję : servername.us.xyz.com
Czy w Unixie (Solaris) jest jakieś polecenie, które zwraca nazwę hosta i nazwę domeny razem?
Na przykład:
hostname -> servername
domainname -> us.xyz.com
Potrzebuję : servername.us.xyz.com
Odpowiedzi:
Komenda
hostname --fqdn (or -f)
może również robić, co chcesz lub nie, ponieważ w moim systemie dostaję, (none)
gdy uruchamiamdomainname
hostname(1)
systemu Solaris 10 (sun4v) i wszystkich starszych wersji, z których korzystałem, --fqdn
nie jest on dostępny. Po prostu próbuje ustawić nazwę hosta na --fqdn
. Jeśli uruchomisz go dla bezpieczeństwa jako nieużytkownik, pojawi się komunikat „uname: błąd w ustawianiu nazwy: Brak właściciela”. Jest to oczywiście zapas Solaris hostname
. Plakat nie wskazuje, czy mają zainstalowany zestaw narzędzi GNU.
Ten też mnie denerwuje od lat. Po prostu pracuję nad tym, mówiąc
$(hostname).$(domainname)
Możesz zdefiniować funkcję powłoki lub alias:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
faktycznie zgłasza domenę NIS, jeśli korzystasz z NIS. To niekoniecznie jest takie samo jak nazwa domeny DNS.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
ustawia nazwę hosta na „--fqdn”, co jest prawdopodobnie złym pomysłem (więc upewnij się, że nie jesteś rootem, jeśli spróbujesz). :) Jest --fqdn
obsługiwany w systemie Solaris 11?
sprawdź nazwę hosta | awk „{print $ NF}”
Wiem, że to starszy wątek, ale potrzebowałem osobno pobrać nazwę hosta i nazwę domeny w skrypcie.
Odpowiedź ealgumby na użycie nazwy hosta w kratkę była czymś, czego nigdy wcześniej nie widziałem, więc spróbowałem osiągnąć wielki sukces dla moich potrzeb. Oznaczę to jako pomocne, ale najwyraźniej nie mam do tego przedstawiciela.
Ustawiłem domenę w następujący sposób, zapętlając dane wyjściowe z check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Ja robiłem trochę obejście hostname
i host
:
$ host $(hostname -i) | awk '{print $NF }'
(Używam Centos, ale powinno działać gdzie indziej)
Uzyskiwanie domeny bez kropki:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
wydrukuj adres IP odpowiadający nazwie hosta.
host
polecenia. To da ci coś takiego: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
z awk dostaję ostatnią kolumnę, którą jesthostname.domainname
host $(hostname -i)
daje mi listę 8 nazw hostów, wszystkie o tym samym adresie IP, i brak nazwy hosta odpowiadającej moim hostom
host
dowodzenia? wygląda na to, że twoje polecenie host
ma aliashost -a
W Solarisie działało to dla mnie dobrze: przepraszam za backstick, to jest odwrócony cytat obok cyfry 1 na klawiaturze qwerty lub możesz użyć $ (polecenie) w KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
lub
getent hosts $(/usr/bin/hostname)
przykład:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent wysyła zapytanie do mechanizmu wyszukiwania bieżącej nazwy, jak określono w /etc/nsswitch.conf, i zwraca informacje pasujące do wyszukiwania, tutaj zwraca informacje takie, jak w /etc/hosts
. jeśli szukasz informacji o hoście dla innego hosta, którego nie ma /etc/hosts
, będzie szukał w DNS, pod warunkiem, że jest to zdefiniowane w/etc/nsswitch.conf
W uniksowym skrypcie bash w Sun Solaris 10 właśnie wyświetlałem moją nazwę hosta przez:
echo „Moja nazwa hosta to $ (nazwa hosta)”
printf "%s" "$(hostname) $(domainname)"
działa?