Unix'te (Solaris) ana bilgisayar adını ve etki alanı adını birlikte döndüren bir komut var mı?
Örneğin:
hostname -> servername
domainname -> us.xyz.com
İhtiyacım var : servername.us.xyz.com
Unix'te (Solaris) ana bilgisayar adını ve etki alanı adını birlikte döndüren bir komut var mı?
Örneğin:
hostname -> servername
domainname -> us.xyz.com
İhtiyacım var : servername.us.xyz.com
Yanıtlar:
Komuta
hostname --fqdn (or -f)
sistemimde (none)
çalıştırdığımda aldığımdan beri istediğini yapabilir ya da yapmayabilirsindomainname
hostname(1)
(sun4v üzerine) Solaris 10 üzerinde ve ben kullandım her eski sürümü, --fqdn
kullanılamaz. Sadece ana bilgisayar adını ayarlamaya çalışır --fqdn
. Güvenlik için süper kullanıcı olmayan olarak çalıştırırsanız, 'uname: ayar adında hata: Sahip değil' yazıyor. Bu tabii ki hisse senedi Solaris hostname
. Poster, GNU araç setinin yüklü olup olmadığını göstermez.
Bu da yıllardır beni rahatsız ediyor. Ben sadece etrafında söyleyerek çalışıyorum
$(hostname).$(domainname)
Bir kabuk işlevi veya diğer ad tanımlayabilirsiniz:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
NIS kullanıyorsanız aslında NIS alanınızı bildirir. Bu mutlaka DNS alan adınızla aynı değildir.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
ayarlar ; bu muhtemelen kötü bir fikirdir (bu nedenle denerseniz kök olmadığınızdan emin olun). :) --fqdn
Solaris 11'de destekleniyor mu?
check-hostname | awk '{print $ NF}'
Bu eski bir iş parçacığı olduğunu biliyorum ama ayrı bir komut dosyası içinde ana bilgisayar adı ve etki alanı adı çekme ihtiyacı vardı.
ealgumby'nin check-hostname kullanma yanıtı daha önce hiç görmediğim bir şeydi, bu yüzden ihtiyaçlarım için büyük bir başarıya çalıştım. Ben yararlı olarak işaretlemek ama görünüşe göre bunu yapmak için temsilcisi yok.
Etki alanını aşağıdaki gibi kontrol-ana bilgisayar adının çıktısında döngü yaparak ayarladım.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Ben biraz geçici çözüm yaptık hostname
ve host
:
$ host $(hostname -i) | awk '{print $NF }'
(Centos kullanıyorum ama başka bir yerde çalışmalı)
Alanın sondaki nokta olmadan alınması:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
ana bilgisayar adına karşılık gelen IP adresini yazdırın.
host
komuta iletiyorum. Bu size böyle bir şey alacak: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
awk ile son sütun olanhostname.domainname
host $(hostname -i)
bana aynı IP ile 8 ana bilgisayar adı ve ana bilgisayarlara karşılık gelen hiçbir ana bilgisayar adı vermek
host
komut için takma adınız olmadığından emin misiniz ? sizin komut görünüyor host
için bir takma ad vardırhost -a
Solaris'te bu benim için iyi çalıştı: backtick için üzgünüm, bir qwerty klavyesinde 1 numarasının yanındaki ters alıntı veya KSH'de $ (komut) kullanabilirsiniz
getent hosts (backtick) /usr/bin/hostname (backtick)
veya
getent hosts $(/usr/bin/hostname)
misal:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent, geçerli ad arama mekanizmasını /etc/nsswitch.conf dosyasında belirtildiği şekilde sorgular ve arama ile eşleşen bilgileri döndürür, burada bulunan bilgileri döndürür /etc/hosts
. içinde olmayan başka bir ana makine için ana bilgisayar bilgisini ararsanız /etc/hosts
,/etc/nsswitch.conf
Unix bash komut dosyasında, Sun Solaris 10'da ana bilgisayar adımı şu şekilde görüntüledim:
echo "Ana bilgisayar adım $ (ana bilgisayar adı)"
printf "%s" "$(hostname) $(domainname)"
?