Sponsored Content
Top Forums Shell Programming and Scripting How to know which Linux Distribution i am using ? Post 302211858 by nobo on Friday 4th of July 2008 07:24:51 PM
Old 07-04-2008
whichNix

Found this old thread while researching. I come up against this problem often in a very heterogeneous network I admin. Barring us deploying Puppet or a similar solution (someday), I need a fix. There is no canonical way to determine distro so this script is a hack around. It works (gives a best guess) on slack, suse, rh, centOS, ubuntu, solaris, and a couple of other proprietary systems we use.

Comment, suggest, port, test, change, flame. Smilie
Code:
#! /bin/bash
# return an awkable string consisting of
#    unix OS type, or
#    Linux dist, or
#    a long guess (based on /proc), or
#    no clue

giveUp () {
   echo "Unknown"
   exit 0
}

# keep this easily awkable, prepending an initial clue
versionGuess () {
   if [ -e /proc/version ]; then
      echo -n "Unsure "
      cat /proc/version
      exit 0
   fi
   return 1
}

# if we have ignition, print and exit
gotDist () {
   [ -n "$1" ] && echo "$1" && exit 0
}

# we are only interested in a single word "dist" here
# various malformations can occur; admin will have to code appropately based on output
linuxRelease () {
   if [ -r /etc/lsb-release ]; then
      dist=$(grep 'DISTRIB_ID' /etc/lsb-release | sed 's/DISTRIB_ID=//' | head -1)
      gotDist "$dist"
   fi

   dist=$(find /etc/ -maxdepth 1 -name '*release' 2> /dev/null | sed 's/\/etc\///' | sed 's/-release//' | head -1)
   gotDist "$dist"

   dist=$(find /etc/ -maxdepth 1 -name '*version' 2> /dev/null | sed 's/\/etc\///' | sed 's/-version//' | head -1)
   gotDist "$dist"

   return 1
}

# start with uname and branch the decision from there
dist=$(uname -s 2> /dev/null)
if [ "$dist" = "Linux" ]; then
   linuxRelease
   versionGuess
   giveUp
elif [ -n "$dist" ]; then
   echo "$dist"
   exit 0
else
   versionGuess
   giveUp
fi

# we shouldn't get here
giveUp
# done

 

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to know which Linux Distribution i am using

Hi, I m working on many Linux servers in my project. But i am unable to know which Linux Distribution i am using Like whether i am using SUSE or REDHAT or MONDRAKE. I tried with "uname" command. But it does not help me. Please provide me the command if u know. Regards, Basavaraja KC (3 Replies)
Discussion started by: BasavarajaKC
3 Replies

2. UNIX for Dummies Questions & Answers

What Linux distribution should I use?

Hey I am right now working on an old Compaq computer, and because I have a newer one I thought of installing Linux on this one. The thing is that I don't know which Linux distribution that would work with a minimum of lag. My computer specifications is: Compaq Presario 7000 Intel Pentium... (7 Replies)
Discussion started by: Sixmax
7 Replies

3. Programming

Linux Distribution

Hi, Can anyone please tell me, what is the best Linux distribution for Software Development. Thanks, Philip. (4 Replies)
Discussion started by: Phi01
4 Replies

4. Linux

which linux distribution to use for SOHO ?

Hi I consider changing operating system onto Linux. But I'm not sure what kind of distribution should I use : - Red Hat - Suse - Ubuntu - Debian - Fedora Operating system will be operating on the notebook to replace Win XP and must be stable version with all drivers to hardware (WiFi... (7 Replies)
Discussion started by: presul
7 Replies

5. Linux

What linux distribution is good?

Dear all i am new to Linux, i need a Linux OS that have been "qt development and lesstif" together. Regards (5 Replies)
Discussion started by: mkhorami76
5 Replies

6. Fedora

Starting out, Linux Distribution

Hi, i'm currently part of an apprenticeship becoming a IT specialist. Because I'm already an electronic technician (finished apprenticeship) I can do this one in 2 years (normally you need 3). Thing is, in school they started out with basic unix stuff (working with the shell) in the first... (3 Replies)
Discussion started by: Dr. Nick
3 Replies

7. What is on Your Mind?

What was your first Linux distribution?

What was the first Linux distribution you tried? My first was Knoppix, it was pretty good I thought, and it supported my old hardware http://www.linuxforum.com/images/smilies/smile.png Too bad I couldn't figure out how to install it at the time though. What about you? (32 Replies)
Discussion started by: billcrosby
32 Replies
DIJKSTRA(1)						      General Commands Manual						       DIJKSTRA(1)

NAME
dijkstra - single-source distance filter SYNOPSIS
dijkstra [ -ap? ] [ sourcenode file ] DESCRIPTION
dijkstra reads a stream of graphs and for each computes the distance of every node from sourcenode. Edge length is given in the len attribute, and the default is 1. The dist attribute of every node is set to its distance from sourcenode. If the -p flag is used, the prev attribute of each node reachable from sourcenode is set to the name of the previous node on a shortest path. The graph attribute maxdist is set to the maximum dist of all nodes in the graph. By default, if the graph is disconnected, the dist attribute of nodes unreachable from sourcenode are left untouched, and maxdist is set to the maximum of any previous value and the largest distance recorded in this run. On the other hand, if the -a flag is used, the dist attribute of an unreachable node is assigned a very large value, and maxdist records the maximum distance found in the component containing sourcenode. Any number of sourcenode file pairs may be given. If the last file is missing, stdin is used. All output is written to stdout. In a typical application, dist and maxdist can drive a downstream calculation of color or some other attribute. SEE ALSO
gvpr(1), gvcolor(1), libgraph(3) 21 March 2001 DIJKSTRA(1)
All times are GMT -4. The time now is 12:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy