zoukankan      html  css  js  c++  java
  • Detecting Underlying Linux Distro

    If you are the owner of the system, then you know which Linux is installed and running. This article will help you to understand how to determine which Linux distribution is installed. You can incorporate this into your application to detect Linux distro.

    System Command: uname

    Most of the Linux systems provide uname to detect system released information.

    Release Information File

    Most of the Linux distributions maintain release information file in an/etc/directory. Here is the list of files on some of the well known Linux distributions:

    Novell SUSE /etc/SUSE-release
    Red Hat /etc/redhat-release, /etc/redhat_version
    Fedora /etc/fedora-release
    Slackware /etc/slackware-release, /etc/slackware-version
    Debian /etc/debian_release, /etc/debian_version,
    Mandrake /etc/mandrake-release
    Yellow dog /etc/yellowdog-release
    Sun JDS /etc/sun-release
    Solaris/Sparc /etc/release
    Gentoo /etc/gentoo-release
    UnitedLinux /etc/UnitedLinux-release
    ubuntu /etc/lsb-release

    Sample Script

    Using system command uname and contents of the release files you can write scripts of programs to help your software to detect distribution.

    #!/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 "
    " ' ' | 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/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 "
    " ' '| sed s/VERSION.*//`
    		REV=`cat /etc/SUSE-release | tr "
    " ' ' | 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 "
    " ' ' | sed s/VERSION.*//`]"
    	fi
    	
    	OSSTR="${OS} ${DIST} ${REV}(${PSUEDONAME} ${KERNEL} ${MACH})"
    
    fi
    
    
    echo ${OSSTR}



    from http://www.novell.com/coolsolutions/feature/11251.html

  • 相关阅读:
    分布式并行计算MapReduce
    备份
    【爬虫综合作业】猫眼电影TOP100分析
    爬取全部的校园新闻
    获取一篇新闻的全部信息
    爬虫原理
    中文词频统计
    复合数据类型,英文词频统计
    字符串、文件操作,英文词频统计预处理
    期末大作业
  • 原文地址:https://www.cnblogs.com/kex1n/p/6595831.html
Copyright © 2011-2022 走看看