У 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
встановлює ім'я хоста на "--fqdn", що, мабуть, є поганою ідеєю (тому переконайтеся, що ви не користуєтеся коренем, якщо спробуєте це). :) Чи --fqdn
підтримується Solaris 11?
чек-ім'я хоста | awk '{print $ NF}'
Я знаю, що це старіший потік, але у мене виникло потреба окремо витягувати ім'я хоста та доменне ім'я у сценарії.
Відповідь ealgumby на використання чека-хоста було тим, чого я ніколи не бачив, тому я спробував це з великим успіхом для моїх потреб. Я б відзначив це корисним, але, мабуть, у мене немає представника для цього.
Я встановлюю домен наступним циклом через висновок з імені check-host.
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
команду. Ви отримаєте щось подібне: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
з awk я отримую останню колонку, яка єhostname.domainname
host $(hostname -i)
дати мені список 8
host
команди? видається, що у вашої команди host
є псевдонімhost -a
У Solaris це добре працювало для мене: вибачте за зворотний вибір, це зворотна цитата поруч із номером 1 на клавіатурі qwerty або ви можете використовувати $ (команду) в 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
У скрипті bash Unix, в Sun Solaris 10, я просто відобразив ім'я свого хоста:
echo "Моє ім'я хоста - $ (ім'я хоста)"
printf "%s" "$(hostname) $(domainname)"
не працює?