AWS服务器查看Linux OS系统版本信息的方法
AWS服务器Linux版本信息的获取方法,以及在查找过程中出现的一些信息误区解读
前一段时间在AWS服务器上使用Azure服务出了点问题,就好奇公司给的AWS服务器的操作系统到底是什么,查了不少资料终于找到了比较可靠的方法,特作记录。
一、查找Linux OS对应的操作系统名称的方法
虽然常规查找Linux操作系统版本的方法针对AWS自有操作系统都没用
,但还是记一下吧
1、如果是Ubuntu,输入cat /etc/lsb-release
。有找到的话会出现以下讯息:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
注意:如果不是Ubuntu,则会出现以下讯息(因为不是Ubuntu系统,所以不存在lsb-release命名的系统文件)
$ cat /etc/lsb-release
cat: /etc/lsb-release: No such file or directory
2、Debian虽然跟Ubuntu同体系,但是存放版本号文件名还是和Ubuntu不一样:
$ cat /etc/debian_version
8.0
3、Fedora, Red Hat and CentOS 的查看方法:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
二、确认Kernel版本
如果以上方法都不行,说明可能是其他版本的Linux版本,那么可以使用uname -or
取得kernel的版本:
可以看到Linux的版本号,通过https://repology.org/project/linux/packages查找版本号,可以看出它是Amazon Linux 2系统:
从AWS官网可以看出这个版本继承的是Linux kernel 5.10,如果你要使用的SDK或者其他服务有系统要求的话就要注意是不是版本不匹配了
到这一步其实就可以确认AWS的Linux的OS版本了,那么怎么才能在命令行里打印出这些信息呢?
继续往下看。
三、针对AWS自有Linux OS的操作系统名称的方法
AWS服务器预置的操作系统选项很多,最麻烦的是AWS自有的Linux操作系统,如果使用上述方法是找不到系统信息的,因为不存在上述的所有系统信息文件,但是使用ls /etc/*release
可以看到在/etc路径下还是有系统文件的:
那么直接使用cat /etc/os-release
把它们打印出来就可以了:
可以看出这台服务器使用的是AWS自带的操作系统版本,可以拿着这个去找运维重装系统了(不是)。
当然也可以用以下命令打印出来,下面这个更具有广泛性,适合可能不太清楚linux操作系统的人一键式生成操作系统信息。
cat /etc/*{release,version}
四、误区——在查找版本时候可能会出现的错误理解
误区一:使用命令rpm -E %{rhel}
,这个应该是针对Redhat系统的命令语句,在AWS Linux 2系统下打印出来的结果是:
这里的7代表的是Redhat 7版本。
误区二:使用命令cat /proc/version
,在AWS Linux 2系统下打印出来的结果是:
误区二是误导了运维给我错误的版本信息的元凶,一般来说的确会觉得都写了RedHat 7.3那就应该是RedHat系统了,但是其实不是的。
针对AWS服务器系统的具体讨论可以见:https://serverfault.com/questions/798427/what-linux-distribution-is-the-amazon-linux-ami-based-on
这里把大佬们的讨论结果总结一下:
1、Amazon Linux的相关文档非常少,而且很杂乱,虽然说是基于Centos,但是使用过程中可能更接近于Ubuntu。有人说下次自己一定使用Ubuntu LTS再也不用AWS的自带系统了。
2、时间截止2013年,针对AWS Linux AMI 1是基于RHEL 5.x 也包含部分 RHEL6,但是也仅仅是为了兼容RHEL。但是截止到2016年,AWS的自有Linux OS就不基于任何Linux发行版本,该系统版本是被Amazon独立进行维护的。针对AWS自有系统无法使用package的讨论从这个时间点开始就经久不衰了(笑)。
3、针对误区二,RedHat 7.3.1的说明仅仅是表达gcc版本中的一个字符串而已,虽然可能是兼容的,但是如果真要查操作系统版本,还是用上面提到的方法,不要把cat /proc/version
当真了,毕竟Linux的版本真的很多。
五、参考资料:
针对AWS服务器的讨论:https://serverfault.com/questions/798427/what-linux-distribution-is-the-amazon-linux-ami-based-on
操作系统查看命令:https://lukahuang.com/linux-how-to-check-os/
Kernel对应的操作系统版本信息查看:https://repology.org/project/linux/packages
更多推荐
所有评论(0)