| Unix Content | Register | FAQ | Calendar | Search | Today's Posts | Mark Forums Read |
|
#1
|
| I am having trouble with my Debian Linux network configuration, and I am trying to isolate the problem. The name of my host is "jupiter" and the name of my domain is "obliqueuniverse.org". jupiter:~# echo jupiter.obliqueuniverse.org > /etc/hostname jupiter:~# cat /etc/hosts | sed –n 1p 127.0.0.1 localhost.localdomain localhost jupiter jupiter:~# cat /etc/hosts | sed –n 4p 207.237.37.110 jupiter.obliqueuniverse.org jupiter I believe that /bin/hostname without options should output the host name "jupiter", but it doesn't. Here's what I get when I run /bin/ hostname: jupiter:~# /bin/hostname -–domain obliqueuniverse.org # AS EXPECTED jupiter:~# hostname –-fqdn jupiter.obliqueuniverse.org # # AS EXPECTED jupiter:~# /bin/hostname –-ip-address 207.237.37.110 # AS EXPECTED jupiter:~# /bin/hostname –short jupiter # AS EXPECTED jupiter:~# /bin/hostname –nis (none) # ? ? ? jupiter:~# /bin/hostname jupiter.obliqueuniverse.org # EXPECTED "jupiter" jupiter:~# /bin/hostname –F /etc/hostname jupiter:~# /bin/hostname –-alias jupiter # NOW HOSTNAME IS PRINTED! Can anyone shed light on the last 4 results? Thanks & Best Regards, Vwaju New York City |
|
#2
|
| On Fri, 22 Aug 2008 12:55:59 -0700 (PDT), Vwaju wrote: > I am having trouble with my Debian Linux network configuration, and I > am trying to isolate the problem. The name of my host is "jupiter" > and the name of my domain is "obliqueuniverse.org". > > jupiter:~# echo jupiter.obliqueuniverse.org > /etc/hostname > > jupiter:~# cat /etc/hosts | sed –n 1p > 127.0.0.1 localhost.localdomain localhost jupiter > > jupiter:~# cat /etc/hosts | sed –n 4p > 207.237.37.110 jupiter.obliqueuniverse.org jupiter grep jupiter /etc/hosts 127.0.0.1 localhost.localdomain localhost jupiter 207.237.37.110 jupiter.obliqueuniverse.org jupiter Why do you have jupiter on more than one line. ![]() Look at the ip address when you do a ping -c1 jupiter > I believe that /bin/hostname without options should output the host > name "jupiter", but it doesn't. Quick look in man hostname, indicates gethostname is used. man gethostname shows CONFORMING TO POSIX.1-2001 so I am going to guess hostname default is FQDN. > jupiter:~# /bin/hostname –nis > (none) # ? ? ? Guessing your nis server is not running. > jupiter:~# /bin/hostname > jupiter.obliqueuniverse.org # EXPECTED "jupiter" I would expect that on a POSIX compliant system. > jupiter:~# /bin/hostname –F /etc/hostname > You told hostname to set hostname from /etc/hostname, not display it. > jupiter:~# /bin/hostname –-alias > jupiter # NOW HOSTNAME IS PRINTED! no surprise there because your earlier test showed /bin/hostname –short jupiter |
|
#3
|
| On Aug 22, 4:16 pm, Bit Twister > On Fri, 22 Aug 2008 12:55:59 -0700 (PDT), Vwaju wrote: > > I am having trouble with my Debian Linux network configuration, and I > > am trying to isolate the problem. The name of my host is "jupiter" > > and the name of my domain is "obliqueuniverse.org". > > > jupiter:~# echo jupiter.obliqueuniverse.org > /etc/hostname > > > jupiter:~# cat /etc/hosts | sed –n 1p > > 127.0.0.1 localhost.localdomain localhost jupiter > > > jupiter:~# cat /etc/hosts | sed –n 4p > > 207.237.37.110 jupiter.obliqueuniverse.org jupiter > > grep jupiter /etc/hosts > 127.0.0.1 localhost.localdomain localhost jupiter > 207.237.37.110 jupiter.obliqueuniverse.org jupiter > > Why do you have jupiter on more than one line. ![]() I am working from Linux System Administration (LSA) Adelstein & Lubanovic, O'Reilly, 2007 (p. 14). LSA is a detailed guide to building an internet server on Debian Linux ("sarge"), which is what I am running. I added the second line (following LSA) because I am building an internet server with a static IP address, and there needs to be a line in /etc/hosts that maps the host and the FQDN to the static IP address. > Look at the ip address when you do a > ping -c1 jupiter jupiter:~# ping –c1 jupiter | sed –n 1p PING localhost.localdomain (127.0.0.1) 56(84) bytes of data > > I believe that /bin/hostname without options should output the host > > name "jupiter", but it doesn't. According to LSA, if I execute echo myserver.mydomain.org > /etc/hostname and then /bin/hostname –F /etc/hostname then /bin/hostname should print "myserver" (the hostname w/o the domain name) What do you get on your system? Thanks for helping a neophyte, Twister. Best Regards, Vwaju New York City |
|
#4
|
| On Fri, 22 Aug 2008 14:49:27 -0700 (PDT), Vwaju wrote: > On Aug 22, 4:16 pm, Bit Twister >> >> grep jupiter /etc/hosts >> 127.0.0.1 localhost.localdomain localhost jupiter >> 207.237.37.110 jupiter.obliqueuniverse.org jupiter >> >> Why do you have jupiter on more than one line. ![]() > > > I added the second line (following LSA) because I am building an > internet server with a static IP address, and there needs to be a line > in /etc/hosts that maps the host and the FQDN to the static IP > address. I would remove jupiter from the 127.0.0.1 line. I know when I ping jupiter I would want 207.237.37.110, not 127.0.0.1 > then /bin/hostname should print "myserver" (the hostname w/o the > domain name) > > What do you get on your system? Mandrvia 2008.1 fqdn fedora 9 fqdn slack 12.1 short name kubuntu 8.04 short name Mandrvia 2009.0 fqdn pc linux 2007 fqdn suse 10.3 short name suse 11.0 short name |
|
#5
|
| On Fri, 22 Aug 2008, in the Usenet newsgroup comp.os.linux.networking, in article Vwaju wrote: NOTE: Posting from groups.google.com (or some web-forums) dramatically reduces the chance of your post being seen. Find a real news server. >Bit Twister >> grep jupiter /etc/hosts >> 127.0.0.1 localhost.localdomain localhost jupiter >> 207.237.37.110 jupiter.obliqueuniverse.org jupiter >> >> Why do you have jupiter on more than one line. ![]() > >I am working from Linux System Administration (LSA) Adelstein & >Lubanovic, O'Reilly, 2007 (p. 14). LSA is a detailed guide to building >an internet server on Debian Linux ("sarge"), which is what I am >running. "sarge" (version 3.1) was superseded about a bit over a year ago by "etch" (version 4.0). Use the command 'cat /etc/debian_version' to see what you are using. (It's a common problem that printed books are often dealing with old or even obsolete versions.) Please review the section about updating the system before you offer an older system to the bad d00ds on the Internet. >I added the second line (following LSA) because I am building an >internet server with a static IP address, and there needs to be a line >in /etc/hosts that maps the host and the FQDN to the static IP >address. That is correct, but why is it ALSO a nickname (alias) for localhost? The concept is that a name appears on one, and only one line in the /etc/hosts file. Likewise, an IP address should appear on one line only. Many operating systems will _tolerate_ having the same name or IP address on multiple lines, but it can give unexpected results. The 'localhost' alias of 'jupiter' isn't needed. If _ON_ 'jupiter' you want to send packets to 'jupiter' or 'jupiter.obliqueuniverse.org', the kernel will look at /etc/host.conf (old applications) or /etc/nsswitch.conf to see where/how to look up names. [compton ~]$ grep host /etc/host.conf /etc/nsswitch.conf /etc/host.conf rder hosts,bind/etc/nsswitch.conf:hosts: files nis dns [compton ~]$ Here, both files say to check the /etc/hosts file FIRST. Looking in your /etc/hosts file, it would find the rcn.com address. But the kernel is smart, and knows that this address is one of it's addresses and rather than clutter up the wire with useless noise, it would use the loopback address - it knows it is talking to itself, not some host out on the Internet. >then /bin/hostname should print "myserver" (the hostname w/o the >domain name) > >What do you get on your system? Linux distributions are supposed to follow Linux Standard Base standards, and one of those is the Base Core Specification: ------------------ Linux Standard Base Core Specification 3.2 Section 15.2 Command Behavior Name hostname -- show or set the system's host name Synopsis hostname [name] Description hostname is used to either display or, with appropriate privileges, set the current host name of the system. The host name is used by many applications to identify the machine. When called without any arguments, the program displays the name of the system as returned by the gethostname() function. When called with a name argument, and the user has appropriate privilege, the command sets the host name. Note: It is not specified if the hostname displayed will be a fully qualified domain name. Applications requiring a particular format of hostname should check the output and take appropriate action. ------------------ See that note on the end of the requirement? It always is a good idea to look at the manual page for commands you are unfamiliar with. As Bit shows in his response, you may get different results depending on which distribution you are using. And by the way, my systems also return the FQDN. Old guy |
|
#6
|
| On Aug 23, 5:08 pm, ibupro...@painkiller.example.tld (Moe Trin) wrote: > On Fri, 22 Aug 2008, in the Usenet newsgroup comp.os.linux.networking, in > article > > Vwaju wrote: > > NOTE: Posting from groups.google.com (or some web-forums) dramatically > reduces the chance of your post being seen. Find a real news server. > > >Bit Twister > >> grep jupiter /etc/hosts > >> 127.0.0.1 localhost.localdomain localhost jupiter > >> 207.237.37.110 jupiter.obliqueuniverse.org jupiter > > >> Why do you have jupiter on more than one line. ![]() > > >I am working from Linux System Administration (LSA) Adelstein & > >Lubanovic, O'Reilly, 2007 (p. 14). LSA is a detailed guide to building > >an internet server on Debian Linux ("sarge"), which is what I am > >running. > > "sarge" (version 3.1) was superseded about a bit over a year ago by > "etch" (version 4.0). Use the command 'cat /etc/debian_version' to see > what you are using. (It's a common problem that printed books are > often dealing with old or even obsolete versions.) Please review the > section about updating the system before you offer an older system to > the bad d00ds on the Internet. > > >I added the second line (following LSA) because I am building an > >internet server with a static IP address, and there needs to be a line > >in /etc/hosts that maps the host and the FQDN to the static IP > >address. > > That is correct, but why is it ALSO a nickname (alias) for localhost? > > The concept is that a name appears on one, and only one line in the > /etc/hosts file. Likewise, an IP address should appear on one line > only. Many operating systems will _tolerate_ having the same name or > IP address on multiple lines, but it can give unexpected results. > > The 'localhost' alias of 'jupiter' isn't needed. If _ON_ 'jupiter' > you want to send packets to 'jupiter' or 'jupiter.obliqueuniverse.org', > the kernel will look at /etc/host.conf (old applications) or > /etc/nsswitch.conf to see where/how to look up names. > > [compton ~]$ grep host /etc/host.conf /etc/nsswitch.conf > /etc/host.conf rder hosts,bind> /etc/nsswitch.conf:hosts: files nis dns > [compton ~]$ > > Here, both files say to check the /etc/hosts file FIRST. Looking in > your /etc/hosts file, it would find the rcn.com address. But the > kernel is smart, and knows that this address is one of it's addresses > and rather than clutter up the wire with useless noise, it would use > the loopback address - it knows it is talking to itself, not some host > out on the Internet. > > >then /bin/hostnameshould print "myserver" (the hostname w/o the > >domain name) > > >What do you get on your system? > > Linux distributions are supposed to follow Linux Standard Base standards, > and one of those is the Base Core Specification: > > ------------------ > Linux Standard Base Core Specification 3.2 > > Section 15.2 Command Behavior > > Name > > hostname -- show or set the system's host name > > Synopsis > > hostname [name] > > Description > > hostname is used to either display or, with appropriate privileges, set > the current host name of the system. The host name is used by many > applications to identify the machine. > > When called without any arguments, the program displays the name of the > system as returned by the gethostname() function. > > When called with a name argument, and the user has appropriate > privilege, the command sets the host name. > > Note: It is not specified if the hostname displayed will be a fully > qualified domain name. Applications requiring a particular format of > hostname should check the output and take appropriate action. > > ------------------ > > See that note on the end of the requirement? It always is a good idea > to look at the manual page for commands you are unfamiliar with. As Bit > shows in his response, you may get different results depending on which > distribution you are using. And by the way, my systems also return the > FQDN. > > Old guy Thank you for the helpful pointers, Old Guy. I had read the man page for hostname, but was not aware of the Linux Standard Base Core Specification 3.2) Best Regards, Vwaju NYC |