1 #!/bin/bash
2
3 #
4 # 无人值守升级 CentOS 6.x 系统内核到 3.10.x 长期支持版
5 #
6
7 #
8 # 1、检查操作系统是否为 CentOS 6.x
9 #
10
11 cat /etc/centos-release |grep -i centos |egrep '6.[[:digit:]]+' &>/dev.null
12 if [[ $? != 0 ]]
13 then
14 echo -e "不支持的操作系统,该脚本只适用于 CentOS 6.x 操作系统"
15 exit 1
16 fi
17
18 #
19 # 2、检查当前内核版本是否满足安装 Docker 的要求:
20 # 如果满足直接退出脚本,如果不满足将自动升级系统内核
21 #
22
23 if [[ $(uname -r |awk -F '.' '{print $1}') -ge 3 ]]
24 then
25 if [[ $(uname -r |awk -F '.' '{print $2}') -ge 10 ]]
26 then
27 echo "该操作系统内核版本已满足安装 Docker 的要求,无需升级"
28 exit 1
29 fi
30 fi
31
32 #
33 # 3、导入 ELRepo 公钥
34 #
35
36 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
37
38 if [[ $? != 0 ]]
39 then
40 echo "导入 ELRepo 公钥失败"
41 exit 1
42 fi
43
44 #
45 # 4、安装 ELRepo YUM 源
46 #
47
48 rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
49
50 #
51 # 5、升级内核到 3.10.x 长期支持版
52 #
53
54 yum --enablerepo=elrepo-kernel install kernel-lt -y
55
56 if [[ $? != 0 ]]
57 then
58 echo "升级内核到 3.10.x 长期支持版失败"
59 exit 1
60 fi
61
62 #
63 # 6、配置 GRUB ,下次启动时加载新的内核
64 #
65
66 sed -i 's/default=1/default=0/' /etc/grub.conf && sed -i 's/default=1/default=0/' /boot/grub/grub.conf
67
68 if [[ $? != 0 ]]
69 then
70 echo "配置 GRUB ,下次启动时加载新的内核失败"
71 exit 1
72 fi
73
74 #
75 # 7、重启操作系统,重新加载内核
76 #
77
78 echo -en "\n\t"
79 read -p "立即重启操作系统,加载内核 3.10.101 [y/N]" rebootnow
80 if [[ $rebootnow == y ]]
81 then
82 reboot
83 else
84 echo -e "\n\t稍后手动重启操作系统加载内核 3.10.101\n"
85 fi