首先介绍一下常用的查看Linux系统版本的几种方法
方法1
#
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.1.1503 (Core)
Release: 7.1.1503
Codename: Core
方法2
#
cat /proc/version
Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015
方法3
#
uname -a
Linux jfvm 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
方法4
#
cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
方法5
#
rpm -qa | grep centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64
#
rpm -qa | grep redhat-release
----------------------------
编写shell脚本检查当前Linux系统版本
方法1:
#!/bin/sh
#os=`uname -r | gawk -F. '{print $4}'`
#if [ "$os" != "el7" ];then
#echo $(date "+%Y-%m-%d %H:%M:%S") "Donnot support linux system ${os}"
#exit 1
#fi
该方法存在缺陷,
只能检查这种:
Linux test 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
而下面这种就无法正确检查:
Linux test 3.10.0-229.28.2.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
改进检查方法,直接正则检查:
#!/bin/sh
os=`uname -r`
os_check_reg=".*el7.*"
if [[ ! "$os" =~ $os_check_reg ]]; then
echo $(date "+%Y-%m-%d %H:%M:%S") "not support linux system ${os}"
else
echo "ok, support system!"
exit 1
fi