4

What is the Solaris equivalent of the Linux hostname -f command? On Solaris, when I type hostname, I receive the short name but I need to get the FQDN.

Typing hostname -f sets the short name to be "-f", and the manpage for hostname is pitiful.

3
  • /etc/nodename just lists shortname for the server. The /etc/hostname.* files are all giving me an error when I try to cat them :(
    – Matthew
    Nov 18, 2011 at 18:48
  • What errors do you get with /etc/hostname.if? If those are corrupted then you have bigger problems. Dec 6, 2011 at 20:27
  • This question has also been asked before. Here's the previous answer: serverfault.com/questions/229706/… Mar 20, 2013 at 2:02

3 Answers 3

2

This is likely to work:

perl -mNet::Domain -e 'print Net::Domain::hostfqdn(), "\n"'

but it's not guaranteed. You can view the module source:

perldoc -m Net::Domain

to see how it works (if you know Perl well enough).

2

If you are on a system that the DNS knows about, you could try this:

bash-3.00# nslookup `hostname` | grep 'Name:' | awk '{print $2}'
ep60.bar.foo.com

or, as suggested by a commenter, use "host" instead of nslookup:

host $(hostname) | cut -d" " -f1

I tested this successfully on Linux, Solaris, AIX, and HP-UX.

3
  • nslookup has been deprecated for a long time. host or dig are preferred and would involve fewer pipes: host $(hostname) | cut -d" " -f1 Dec 6, 2011 at 20:26
  • @JamesO'Gorman nslookup is part of the POSIX standard, only a hairbrain OS wouldn't include it these days.
    – Chris S
    Mar 20, 2013 at 4:04
  • @ChrisS True, and nslookup generally still comes with host and dig in the BIND utilities package (OS/distro dependent) but the output from dig is BIND zonefile-compatible and host is slightly easier to parse, therefore I'd say it's better to use host or dig if you can. Mar 21, 2013 at 9:03
2
check-hostname | awk '{ print $NF }'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.