Comment détecter la distribution Linux sur laquelle on est…

Voici le script suivant (adapté d’après ce site) :


#!/bin/sh
# Detects which OS and if it is Linux then it will detect which Linux Distribution.

OS=`uname -s`
REV=`uname -r`
MACH=`uname -m`

GetVersionFromFile()
{
        VERSION=`cat $1 | tr "n" ' ' | sed s/.*VERSION.*= // `
}

if [ "${OS}" = "SunOS" ] ; then
        OS=Solaris
        ARCH=`uname -p`
        OSSTR="${OS} ${REV}(${ARCH} `uname -v`)"
elif [ "${OS}" = "AIX" ] ; then
        OSSTR="${OS} `oslevel` (`oslevel -r`)"
elif [ "${OS}" = "Linux" ] ; then
        KERNEL=`uname -r`
        if [ -f /etc/fedora-release ] ; then
                DIST='Fedora'
                PSUEDONAME=`cat /etc/fedora-release | sed s/.*(// | sed s/)//`
                REV=`cat /etc/fedora-release | sed s/.*release // | sed s/ .*//`
        elif [ -f /etc/redhat-release ] ; then
                DIST='RedHat'
                PSUEDONAME=`cat /etc/redhat-release | sed s/.*(// | sed s/)//`
                REV=`cat /etc/redhat-release | sed s/.*release // | sed s/ .*//`
        elif [ -f /etc/SuSE-release ] ; then
                DIST=`cat /etc/SuSE-release | tr "n" ' '| sed s/VERSION.*//`
                REV=`cat /etc/SuSE-release | tr "n" ' ' | sed s/.*= //`
        elif [ -f /etc/mandrake-release ] ; then
                DIST='Mandrake'
                PSUEDONAME=`cat /etc/mandrake-release | sed s/.*(// | sed s/)//`
                REV=`cat /etc/mandrake-release | sed s/.*release // | sed s/ .*//`
        elif [ -f /etc/debian_version ] ; then
                DIST="Debian `cat /etc/debian_version`"
                REV=""

        fi
        if [ -f /etc/UnitedLinux-release ] ; then
                DIST="${DIST}[`cat /etc/UnitedLinux-release | tr "n" ' ' | sed s/VERSION.*//`]"
        fi

        OSSTR="${OS} ${DIST} ${REV} (${PSUEDONAME} ${KERNEL} ${MACH})"

fi

Exemple d’utilisation :


[root@menthe lenorcy]# sh detect_distro.sh
Linux Fedora 3 (Heidelberg 2.6.12-1.1381_FC3smp i686)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *