12

I am trying to know which version of Linux a remote server is running. I connected to my account there with SSH and used the following command: uname -a

And I got: Linux just103.justhost.com 2.6.32-20130307.60.9.bh6.x86_64 #1 SMP Thu Mar 7 15:58:33 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

But that doesn't tell me which version of Linux it is.

Any advice? Thanks,

Saul

There is a file lynx.cfg, so I did head lynx.cfg and it has:

The default placement for this file is /etc/lynx.cfg (Red Hat Linux, Fedora)

So, does it meas that the system is Red Hat linux or Fedora?

Saul Lugo
  • 131
  • 1
  • 4
  • 1
    Most systems these days have [lsb_release](http://linux.die.net/man/1/lsb_release). –  Jul 11 '13 at 20:22
  • Did you want the kernel version, or the distro name? You already get the kernel version with `uname -a` (see harald's answer). – ajp15243 Jul 11 '13 at 20:25
  • I want the distro name. –  Jul 11 '13 at 20:28
  • [Related/duplicate question](http://stackoverflow.com/questions/1864734/how-to-know-which-linux-distribution-im-using). You may have difficulties since your kernel version indicates an older Linux release. Try `cat /etc/issue`. – ajp15243 Jul 11 '13 at 20:32
  • 1
    [Related Super User question](http://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-using), since this question was migrated from Stack Overflow. – ajp15243 Jul 11 '13 at 20:56
  • 1
    Did you try the social approach? Simply ask the server owner/admin. – AnonymousLurker Jul 12 '13 at 04:21

7 Answers7

9

Try this...

$ cat /etc/*-release
austin
  • 928
  • 1
  • 6
  • 9
  • There is not release* file into the /etc directory. –  Jul 11 '13 at 20:24
  • 1
    @SaulLugo It's `*-release`, not `release*`. For instance, I'm running Arch Linux, so I have `arch-release`, `lsb-release`, and `os-release` in `/etc/`. – ajp15243 Jul 11 '13 at 20:27
  • [/etc]# ls *-release /bin/ls: cannot access *-release: No such file or directory –  Jul 11 '13 at 20:42
  • Saul, have you tried `cat /etc/issue` as I indicated in my comment on your question? The linked Stack Overflow question indicated that command may work out on older distros. – ajp15243 Jul 11 '13 at 21:07
9

If you are lucky, some information can be obtained by running

lsb_release -a
choroba
  • 18,638
  • 4
  • 48
  • 52
4

"2.6.32-20130307.60.9.bh6.x86_64" suggests CentOS or RedHat Linux. To find out what version of CentOS it is (if it is CentOS), use:

cat /etc/redhat-release

or more generally:

cat /etc/*release

Another way to go about it is to look in /etc for configuration files, like update servers and repositories, which are distro-specific.

This:

cat /etc/issue*

might also provide some clues.

Yet another way to go about it is to look for which package manager is installed. Try these:

apt-get -v
yum --version
pacman --version
emerge --version
pkgtool

If you find one them, use them to search for a "lsb-release" or similarly named package, and if found, install it and try:

lsb_release -a
Nikos C.
  • 339
  • 1
  • 8
1

Try using nmap's OS detection: http://nmap.org/book/man.html

0

Check all /etc/* in this function:

https://github.com/saltstack/salt/blob/059f44a4d42ccfa5006b02fc4b01784ac5440eab/salt/grains/core.py#L671

HVNSweeting
  • 828
  • 1
  • 9
  • 17
0

If its debian check

cat /etc/debian_version

or more genrally

cat /etc/*-release
cat /etc/*version

should match most distros

exussum
  • 501
  • 1
  • 7
  • 18
0

If you have yum command available then it is a RedHat/CentOS/Oracle then check your yum repository settings.

If you have apt-get then it is Debian related and again check your software repositories to find out exactly what distribution it is.

If you don't have any of them, then ask the person who created your user account ;)

Ask and Learn
  • 268
  • 4
  • 9