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.null12 if [[ $? != 0 ]]13 then14 echo -e "不支持的操作系统,该脚本只适用于 CentOS 6.x 操作系统"15 exit 116 fi17 18 #19 # 2、检查当前内核版本是否满足安装 Docker 的要求:20 # 如果满足直接退出脚本,如果不满足将自动升级系统内核21 #22 23 if [[ $(uname -r |awk -F '.' '{print $1}') -ge 3 ]]24 then25 if [[ $(uname -r |awk -F '.' '{print $2}') -ge 10 ]]26 then27 echo "该操作系统内核版本已满足安装 Docker 的要求,无需升级"28 exit 129 fi30 fi31 32 #33 # 3、导入 ELRepo 公钥34 #35 36 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org37 38 if [[ $? != 0 ]]39 then40 echo "导入 ELRepo 公钥失败"41 exit 142 fi43 44 #45 # 4、安装 ELRepo YUM 源46 #47 48 rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm49 50 #51 # 5、升级内核到 3.10.x 长期支持版52 #53 54 yum --enablerepo=elrepo-kernel install kernel-lt -y55 56 if [[ $? != 0 ]]57 then58 echo "升级内核到 3.10.x 长期支持版失败"59 exit 160 fi61 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.conf67 68 if [[ $? != 0 ]]69 then70 echo "配置 GRUB ,下次启动时加载新的内核失败"71 exit 172 fi73 74 #75 # 7、重启操作系统,重新加载内核76 #77 78 echo -en "\n\t"79 read -p "立即重启操作系统,加载内核 3.10.101 [y/N]" rebootnow80 if [[ $rebootnow == y ]]81 then82 reboot83 else84 echo -e "\n\t稍后手动重启操作系统加载内核 3.10.101\n"85 fi