您的位置:首页 > 运维架构 > Shell

用python和shell检测centos版本

2015-09-16 11:54 633 查看
python脚本check_os.py代码如下:

[code]import re
import os
import sys 

def check_os():
    catout  = os.popen('cat /etc/redhat-release').readlines()[0].strip()
    if catout.find('CentOS') == 0 or catout.find('Red Hat') == 0:
        _com= re.compile(r'[\S\s]*(\d+)\.(\d+)[\S\s]*')
        _m  = _com.match(catout)
        if _m: 
            if int(_m.group(1)) < 6:
                return 1
            else:
                return 0
        else:
            return 0
    else:
        return 0

if __name__ == '__main__':
    result = check_os()
    sys.exit(result)


shell脚本check_os.sh代码如下:

[code]#!/bin/bash

function check_os()
{
    if grep -q 'CentOS' /etc/redhat-release || grep -q 'Red Hat' /etc/redhat-release
    then
        outStr=$(cat /etc/redhat-release)
        if [[ ${outStr} =~ .*([0-9]+)\.([0-9]+).* ]]
        then
            versionMaster=${BASH_REMATCH[1]}
            if [[ ${versionMaster} -lt 6 ]]
            then
                return 1
            else
                return 0
            fi  
        else
            return 0
        fi  
    else
        return 0
    fi  
}


测试shell脚本test.sh如下:

[code]#!/bin/bash

source ./check_os.sh

$(check_os)
echo $?

$(python check_os.py)
echo $?


我的centos版本为6.5时,执行结果如下:

[code][root@test ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)

[root@test ~]# sh test.sh 
0
0


当修改centos主版本小于6时,执行结果如下:

[code][root@test ~]# cat /etc/redhat-release 
CentOS release 5.5 (Final)
[root@test ~]# sh test.sh 
1
1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: