यूनिक्स (सोलारिस) में कोई कमांड है जो होस्टनाम और डोमेन नाम को एक साथ लौटाता है?
उदाहरण के लिए:
hostname -> servername
domainname -> us.xyz.com
मुझे जरूरत है : servername.us.xyz.com
यूनिक्स (सोलारिस) में कोई कमांड है जो होस्टनाम और डोमेन नाम को एक साथ लौटाता है?
उदाहरण के लिए:
hostname -> servername
domainname -> us.xyz.com
मुझे जरूरत है : servername.us.xyz.com
जवाबों:
आदेश
hostname --fqdn (or -f)
हो सकता है कि आप मेरे सिस्टम पर (none)तब से चलें या न चाहें, जब मैं चलता हूंdomainname
hostname(1)Solaris 10 (sun4v पर) और मेरे द्वारा उपयोग किए गए प्रत्येक पुराने संस्करण के लिए मेनपेज के अनुसार , --fqdnउपलब्ध नहीं है। यह सिर्फ hostname सेट करने की कोशिश करता है --fqdn। यदि आप इसे सुरक्षा के लिए एक गैर-सुपरयूज़र के रूप में चलाते हैं, तो यह कहता है कि 'नाम: सेटिंग नाम में त्रुटि: स्वामी नहीं'। यह स्पष्ट रूप से स्टॉक सोलारिस है hostname। पोस्टर में यह संकेत नहीं है कि उनके पास GNU टूलसेट स्थापित है या नहीं।
यह मुझे सालों से परेशान कर रहा है। मैं सिर्फ यह कहकर इसके आसपास काम करता हूं
$(hostname).$(domainname)
आप एक शेल फ़ंक्शन या अन्य नाम परिभाषित कर सकते हैं:
fqdn () {
echo $(hostname).$(domainname)
}
domainnnameयदि आप NIS चला रहे हैं तो वास्तव में आपके NIS डोमेन की रिपोर्ट करता है। यह आवश्यक रूप से आपके DNS डोमेन नाम के समान नहीं है।
hostname --fqdn | cut -d. -f2-4
hostname --fqdn सेट करता है, जो संभवतः एक बुरा विचार है (इसलिए सुनिश्चित करें कि आप इसे आज़माते हैं तो आप जड़ नहीं हैं)। :) --fqdnसोलारिस 11 पर समर्थित है?
check-hostname | awk '{प्रिंट $ NF}'
मुझे पता है कि यह एक पुराना धागा है, लेकिन मुझे स्क्रिप्ट में होस्टनाम और डोमेन नाम को अलग से खींचने की आवश्यकता थी।
चेक-होस्टनाम का उपयोग करने के लिए ealgumby की प्रतिक्रिया कुछ ऐसी थी जिसे मैंने पहले कभी नहीं देखा था इसलिए मैंने इसे अपनी आवश्यकताओं के लिए बड़ी सफलता के लिए प्रयास किया। मैं इसे सहायक के रूप में चिह्नित करूंगा, लेकिन जाहिर तौर पर मेरे पास ऐसा करने के लिए प्रतिनिधि नहीं है।
मैंने चेक-होस्टनाम से आउटपुट के माध्यम से डोमेन को लूपिंग के रूप में सेट किया।
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होस्टनाम के अनुरूप आईपी एड्रेस प्रिंट करें।
host कमांड करता हूं । यह आपको कुछ इस तरह मिलेगा: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname. awk के साथ मुझे अंतिम कॉलम मिलेगाhostname.domainname
host $(hostname -i)मुझे 8 होस्टनाम की एक सूची का उपयोग करके , सभी एक ही आईपी के साथ, और मेरे मेजबान के लिए कोई होस्टनाम नहीं है
hostकमांड के लिए कोई उपनाम नहीं है ? ऐसा लगता है कि आपके कमांड hostका उपनाम हैhost -a
सोलारिस पर यह मेरे लिए अच्छी तरह से काम करता है: बैकटिक के लिए खेद है, यह क्यूवर्टी कीबोर्ड पर नंबर 1 के बगल में उलट बोली है या आप केएसएच में $ (कमांड) का उपयोग कर सकते हैं
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:[/]#
जैसा कि /etc/nsswitch.conf में निर्दिष्ट है, वर्तमान नाम खोज तंत्र पर सवाल उठता है और खोज से मेल खाने वाली जानकारी लौटाता है, यहाँ यह जानकारी मिलती है जैसा कि पाया गया है /etc/hosts। यदि आप किसी अन्य होस्ट के लिए होस्ट जानकारी की तलाश करते हैं जो अंदर नहीं है /etc/hosts, तो यह DNS में दिखेगा जो कि परिभाषित है/etc/nsswitch.conf
यूनिक्स बैश स्क्रिप्ट में, सन सोलारिस 10 में, मैंने अभी-अभी अपना होस्ट नाम प्रदर्शित किया है:
इको "मेरा होस्टनाम $ है (होस्टनाम)"
printf "%s" "$(hostname) $(domainname)"काम नहीं?