Di unix (Solaris) apakah ada perintah yang mengembalikan nama host dan nama domain bersama?
Contohnya:
hostname -> servername
domainname -> us.xyz.com
Saya butuh : servername.us.xyz.com
Di unix (Solaris) apakah ada perintah yang mengembalikan nama host dan nama domain bersama?
Contohnya:
hostname -> servername
domainname -> us.xyz.com
Saya butuh : servername.us.xyz.com
Jawaban:
Perintah
hostname --fqdn (or -f)
mungkin juga melakukan apa yang Anda inginkan atau tidak karena pada sistem saya saya dapatkan (none)
ketika saya menjalankandomainname
hostname(1)
pada Solaris 10 (pada sun4v) dan setiap versi lama yang saya gunakan, --fqdn
tidak tersedia. Itu hanya mencoba untuk mengatur nama host --fqdn
. Jika Anda menjalankannya sebagai non-superuser untuk keamanan, ia mengatakan 'uname: error dalam menetapkan nama: Bukan pemilik'. Ini jelas merupakan stok Solaris hostname
. Poster tidak menunjukkan apakah mereka memiliki set alat GNU atau tidak.
Yang ini sudah menggangguku selama bertahun-tahun juga. Saya hanya mengatasinya dengan mengatakan
$(hostname).$(domainname)
Anda bisa mendefinisikan fungsi shell atau alias:
fqdn () {
echo $(hostname).$(domainname)
}
domainnname
sebenarnya melaporkan domain NIS Anda jika Anda menjalankan NIS. Ini belum tentu sama dengan nama domain DNS Anda.
hostname --fqdn | cut -d. -f2-4
hostname --fqdn
tetapkan nama host ke '--fqdn', yang mungkin merupakan ide yang buruk (jadi pastikan Anda tidak melakukan root jika Anda mencobanya). :) Apakah --fqdn
didukung pada Solaris 11?
check-hostname | awk '{print $ NF}'
Saya tahu ini adalah utas yang lebih lama tetapi saya memiliki kebutuhan untuk menarik nama host dan nama domain secara terpisah dalam sebuah skrip.
Tanggapan ealgumby untuk menggunakan check-hostname adalah sesuatu yang belum pernah saya lihat sebelumnya jadi saya mencobanya untuk sukses besar untuk kebutuhan saya. Saya akan menandainya sebagai bermanfaat tetapi tampaknya saya tidak memiliki perwakilan untuk melakukannya.
Saya mengatur domain sebagai berikut perulangan melalui keluaran dari check-hostname.
domain=`check-hostname | nawk -F\. '{for(i=2; i<NF;i++){printf $i"."}printf $NF"\n"}'`
fqdn=`hostname`'.'${domain}
Saya telah melakukan sedikit solusi untuk hostname
dan host
:
$ host $(hostname -i) | awk '{print $NF }'
(Saya menggunakan Centos tetapi harus bekerja di tempat lain)
Mendapatkan domain tanpa trailing dot:
$ host $(hostname -i) | awk '{print substr($NF, 1, length($NF)-1)}'
hostname -i
cetak alamat IP yang sesuai dengan nama host.
host
perintah. Ini akan membuat Anda mendapatkan sesuatu seperti ini: YOUR_IP.in-addr.arpa domain name pointer hostname.domainname.
dengan awk saya mendapatkan kolom terakhir yaituhostname.domainname
host $(hostname -i)
host
perintah? tampaknya perintah Anda host
memiliki alias kehost -a
Pada Solaris ini bekerja dengan baik untuk saya: maaf untuk backtick, itu adalah kutipan terbalik di sebelah nomor 1 pada keyboard qwerty atau Anda dapat menggunakan $ (perintah) di KSH
getent hosts (backtick) /usr/bin/hostname (backtick)
atau
getent hosts $(/usr/bin/hostname)
contoh:
root@melauto:[/]# getent hosts $(/usr/bin/hostname)
10.4.19.241 melauto.sro.vic.gov.au melauto loghost
root@melauto:[/]#
getent menanyakan mekanisme pencarian nama saat ini seperti yang ditentukan dalam /etc/nsswitch.conf dan mengembalikan informasi yang cocok dengan pencarian, di sini ia mengembalikan info seperti yang ditemukan di /etc/hosts
. jika Anda mencari info host untuk host lain yang tidak ada /etc/hosts
, itu akan mencari di DNS asalkan apa yang didefinisikan dalam/etc/nsswitch.conf
Dalam skrip bash Unix, di Sun Solaris 10, saya baru saja menampilkan nama host saya dengan:
echo "Nama hostanku adalah $ (nama host)"
printf "%s" "$(hostname) $(domainname)"
bekerja