Nie printf "%s" "$(hostname) $(domainname)"działa?
jasonwryan
spróbuj użyć „hostname -f”, co będzie wystarczające, mam nadzieję, że tak
abhishek kumar srivastava
Odpowiedzi:
14
Działa to, jeśli domena jest poprawnie ustawiona w resolv.conf. Możesz także użyć polecenia domainname, o którym wspominali inni, jeśli nazwa domeny NIS jest taka sama jak domena DNS.
Według strony podręcznika hostname(1)systemu Solaris 10 (sun4v) i wszystkich starszych wersji, z których korzystałem, --fqdnnie 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.
Alexios
5
Ten też mnie denerwuje od lat. Po prostu pracuję nad tym, mówiąc
domainnnamefaktycznie zgłasza domenę NIS, jeśli korzystasz z NIS. To niekoniecznie jest takie samo jak nazwa domeny DNS.
Magellan
Nie, nie jest. Ale odkąd udało mi się uniknąć / uniknąć NIS, ponieważ były to Yellow Pages, nigdy tego nie wiedziałem. :) Więc czy istnieje niezawodny sposób na uzyskanie nazwy domeny, jeśli NIS jest inny?
Alexios
Powinieneś czuć się błogosławiony, że uniknąłeś NIS. To irytujące. I nawet zespół Mozilla Thunderbird zepsuł to, ponieważ zależało od wyjścia „nazwa domeny” dla domyślnej odpowiedzi w 2.0. Do rzeczywistej nazwy domeny używamhostname --fqdn | cut -d. -f2-4
Magellan
1
Działa to dobrze w systemie Linux. W systemie Solaris co najmniej do 10 hostname --fqdnustawia nazwę hosta na „--fqdn”, co jest prawdopodobnie złym pomysłem (więc upewnij się, że nie jesteś rootem, jeśli spróbujesz). :) Jest --fqdnobsługiwany w systemie Solaris 11?
Alexios
1
O tak! Nieumyślne ustawienie nazwy hosta byłoby uciążliwe, a OP powiedział Solaris. Dzięki!
Synopsis / usr / sbin / check-hostname Opis Skrypt check-hostname jest pomocą migracyjną dla sendmaila (1M). Ten skrypt próbuje określić w pełni kwalifikowaną nazwę hosta lokalnego (FQHN) w sposób podobny do sendmaila (1M). Jeśli check-hostname jest w stanie określić FQHN hosta lokalnego, zgłasza powodzenie. W przeciwnym razie check-hostname informuje, jak zmienić konfigurację systemu, aby FQHN mógł zostać poprawnie określony.
ealgumby
/ usr / sbin / check-hostname zgłosi nazwę FQDN, jeśli jest zdefiniowana, w systemach Solaris. Pipingowanie wyjścia do awk i użycie print $ NF po prostu zgłasza ostatnie pole wyjścia z check-hostname, którym jest FQDN. Jest to najbardziej bezpośrednia metoda, jaką znam, aby uzyskać te informacje z wiersza polecenia, przy założeniu, że masz w pełni kwalifikowaną nazwę domeny. Jeśli nie, to nie zadziała, ale nie czułem potrzeby, aby to pokazywać, ponieważ w tym przypadku wystarczy nazwa hosta. Jeśli nie używasz systemu Solaris, to też nie zadziała, ale zapytanie zostało skierowane do systemu Solaris.
ealgumby
Poważnie, nie rozumiem, jak to nie odpowiada na pytanie, które brzmiało: „Czy w Unixie (Solaris) jest jakieś polecenie, które zwraca nazwę hosta i nazwę domeny razem?” Odpowiedź brzmi „tak”, a polecenie brzmi: check-hostname | awk '{print $ NF}'
ealgumby
3
Prawdziwa odpowiedź znajduje się w twoich komentarzach. Udzielenie jednego wiersza polecenia z niewielkim (lub w twoim przypadku brakiem) wyjaśnieniem nie jest odpowiedzią na tę stronę.
rahmu
2
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.
na moim ubuntu hostname -iwydrukuj adres IP odpowiadający nazwie hosta.
Archemar,
Tak, zgadza się, więc przekazuję ten adres IP do 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
user1314742
Rozumiem, niestety użycie host $(hostname -i)daje mi listę 8 nazw hostów, wszystkie o tym samym adresie IP, i brak nazwy hosta odpowiadającej moim hostom
Archemar
czy jesteś pewien, że nie masz żadnych aliasów do hostdowodzenia? wygląda na to, że twoje polecenie hostma aliashost -a
user1314742
0
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 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
printf "%s" "$(hostname) $(domainname)"
działa?Odpowiedzi:
Działa to, jeśli domena jest poprawnie ustawiona w resolv.conf. Możesz także użyć polecenia domainname, o którym wspominali inni, jeśli nazwa domeny NIS jest taka sama jak domena DNS.
źródło
Komenda
może również robić, co chcesz lub nie, ponieważ w moim systemie dostaję,
(none)
gdy uruchamiamdomainname
źródło
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 Solarishostname
. Plakat nie wskazuje, czy mają zainstalowany zestaw narzędzi GNU.Ten też mnie denerwuje od lat. Po prostu pracuję nad tym, mówiąc
Możesz zdefiniować funkcję powłoki lub alias:
źródło
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}”
źródło
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.
źródło
Ja robiłem trochę obejście
hostname
ihost
:(Używam Centos, ale powinno działać gdzie indziej)
Uzyskiwanie domeny bez kropki:
źródło
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 hostomhost
dowodzenia? wygląda na to, że twoje poleceniehost
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
lub
przykład:
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
źródło
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)”
źródło