时间:2020-10-11来源:www.pcxitongcheng.com作者:电脑系统城
所有执行的脚本都需要root身份来执行,执行方法:以root身份执行命令:bash xxx.sh
功能:自动检测系统并更新源
适用系统版本:兼容线上所有linux版本
执行方法:以root身份执行命令:bash update_source.sh
解决了什么问题:一键式检测系统并更新源
给客户带来了好处:用户只需执行该脚本一次即可自动检测系统并更新源。
备注:由于系统版本都有支持的周期所以部分源可能会出现不可用的情况,包括官方的源,这是正常情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
#!/bin/bash ######################################### #Function: update source #Usage: bash update_source.sh #Author: Customer service department #Company: Alibaba Cloud Computing #Version: 2.0 ######################################### check_os_release() { while true do os_release=$( grep "Red Hat Enterprise Linux Server release" /etc/issue 2> /dev/null ) os_release_2=$( grep "Red Hat Enterprise Linux Server release" /etc/redhat-release 2> /dev/null ) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release" | grep "release 5" > /dev/null 2>&1 then os_release=redhat5 echo "$os_release" elif echo "$os_release" | grep "release 6" > /dev/null 2>&1 then os_release=redhat6 echo "$os_release" else os_release= "" echo "$os_release" fi break fi os_release=$( grep "Aliyun Linux release" /etc/issue 2> /dev/null ) os_release_2=$( grep "Aliyun Linux release" /etc/aliyun-release 2> /dev/null ) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release" | grep "release 5" > /dev/null 2>&1 then os_release=aliyun5 echo "$os_release" elif echo "$os_release" | grep "release 6" > /dev/null 2>&1 then os_release=aliyun6 echo "$os_release" else os_release= "" echo "$os_release" fi break fi os_release=$( grep "CentOS release" /etc/issue 2> /dev/null ) os_release_2=$( grep "CentOS release" /etc/ *release 2> /dev/null ) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release" | grep "release 5" > /dev/null 2>&1 then os_release=centos5 echo "$os_release" elif echo "$os_release" | grep "release 6" > /dev/null 2>&1 then os_release=centos6 echo "$os_release" else os_release= "" echo "$os_release" fi break fi os_release=$( grep -i "ubuntu" /etc/issue 2> /dev/null ) os_release_2=$( grep -i "ubuntu" /etc/lsb-release 2> /dev/null ) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release" | grep "Ubuntu 10" > /dev/null 2>&1 then os_release=ubuntu10 echo "$os_release" elif echo "$os_release" | grep "Ubuntu 12.04" > /dev/null 2>&1 then os_release=ubuntu1204 echo "$os_release" elif echo "$os_release" | grep "Ubuntu 12.10" > /dev/null 2>&1 then os_release=ubuntu1210 echo "$os_release" else os_release= "" echo "$os_release" fi break fi os_release=$( grep -i "debian" /etc/issue 2> /dev/null ) os_release_2=$( grep -i "debian" /proc/version 2> /dev/null ) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release" | grep "Linux 6" > /dev/null 2>&1 then os_release=debian6 echo "$os_release" else os_release= "" echo "$os_release" fi break fi break done } modify_rhel5_yum() { wget -O /etc/yum .repos.d /CentOS-Base .repo http: //mirrors .aliyuncs.com /repo/Centos-5 .repo sed -i 's/aliyun/aliyuncs/g' /etc/yum .repos.d /CentOS-Base .repo sed -i 's/\$releasever/5/' /etc/yum .repos.d /CentOS-Base .repo yum clean metadata yum makecache cd ~ } modify_rhel6_yum() { wget -O /etc/yum .repos.d /CentOS-Base .repo http: //mirrors .aliyuncs.com /repo/Centos-6 .repo sed -i 's/aliyun/aliyuncs/g' /etc/yum .repos.d /CentOS-Base .repo sed -i 's/\$releasever/6/' /etc/yum .repos.d /CentOS-Base .repo yum clean metadata yum makecache cd ~ } update_ubuntu10_apt_source() { echo -e "\033[40;32mBackup the original configuration file,new name and path is /etc/apt/sources.list.back.\n\033[40;37m" cp -fp /etc/apt/sources .list /etc/apt/sources .list.back cat > /etc/apt/sources .list <<EOF #ubuntu deb http: //cn .archive.ubuntu.com /ubuntu/ maverick main restricted universe multiverse deb-src http: //cn .archive.ubuntu.com /ubuntu/ maverick main restricted universe multiverse #163 deb http: //mirrors .163.com /ubuntu/ maverick main universe restricted multiverse deb-src http: //mirrors .163.com /ubuntu/ maverick main universe restricted multiverse deb http: //mirrors .163.com /ubuntu/ maverick-updates universe main multiverse restricted deb-src http: //mirrors .163.com /ubuntu/ maverick-updates universe main multiverse restricted #lupaworld deb http: //mirror .lupaworld.com /ubuntu/ maverick main universe restricted multiverse deb-src http: //mirror .lupaworld.com /ubuntu/ maverick main universe restricted multiverse deb http: //mirror .lupaworld.com /ubuntu/ maverick-security universe main multiverse restricted deb-src http: //mirror .lupaworld.com /ubuntu/ maverick-security universe main multiverse restricted deb http: //mirror .lupaworld.com /ubuntu/ maverick-updates universe main multiverse restricted deb http: //mirror .lupaworld.com /ubuntu/ maverick-proposed universe main multiverse restricted deb-src http: //mirror .lupaworld.com /ubuntu/ maverick-proposed universe main multiverse restricted deb http: //mirror .lupaworld.com /ubuntu/ maverick-backports universe main multiverse restricted deb-src http: //mirror .lupaworld.com /ubuntu/ maverick-backports universe main multiverse restricted deb-src http: //mirror .lupaworld.com /ubuntu/ maverick-updates universe main multiverse restricted EOF apt-get update } update_ubuntu1204_apt_source() { echo -e "\033[40;32mBackup the original configuration file,new name and path is /etc/apt/sources.list.back.\n\033[40;37m" cp -fp /etc/apt/sources .list /etc/apt/sources .list.back cat > /etc/apt/sources .list <<EOF #12.04 deb http: //mirrors .aliyuncs.com /ubuntu/ precise main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ precise-security main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ precise-updates main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ precise-proposed main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ precise-backports main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ precise main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ precise-security main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ precise-updates main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ precise-proposed main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ precise-backports main restricted universe multiverse EOF apt-get update } update_ubuntu1210_apt_source() { echo -e "\033[40;32mBackup the original configuration file,new name and path is /etc/apt/sources.list.back.\n\033[40;37m" cp -fp /etc/apt/sources .list /etc/apt/sources .list.back cat > /etc/apt/sources .list <<EOF #12.10 deb http: //mirrors .aliyuncs.com /ubuntu/ quantal main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ quantal-security main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ quantal-updates main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ quantal-proposed main restricted universe multiverse deb http: //mirrors .aliyuncs.com /ubuntu/ quantal-backports main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ quantal main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ quantal-security main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ quantal-updates main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ quantal-proposed main restricted universe multiverse deb-src http: //mirrors .aliyuncs.com /ubuntu/ quantal-backports main restricted universe multiverse EOF apt-get update } update_debian_apt_source() { echo -e "\033[40;32mBackup the original configuration file,new name and path is /etc/apt/sources.list.back.\n\033[40;37m" cp -fp /etc/apt/sources .list /etc/apt/sources .list.back cat > /etc/apt/sources .list <<EOF #debian6 deb http: //mirrors .aliyuncs.com /debian/ squeeze main non- free contrib deb http: //mirrors .aliyuncs.com /debian/ squeeze-proposed-updates main non- free contrib deb-src http: //mirrors .aliyuncs.com /debian/ squeeze main non- free contrib deb-src http: //mirrors .aliyuncs.com /debian/ squeeze-proposed-updates main non- free contrib EOF apt-get update } ####################Start################### #check lock file ,one time only let the script run one time LOCKfile= /tmp/ .$( basename $0) if [ -f "$LOCKfile" ] then echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\n\033[0m" exit else echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\n\033[40;37m" touch $LOCKfile fi #check user if [ $( id -u) != "0" ] then echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\n\033[0m" rm -rf $LOCKfile exit 1 fi echo -e "\033[40;32mStep 2.Begen to check the OS issue.\n\033[40;37m" os_release=$(check_os_release) if [ "X$os_release" == "X" ] then echo -e "\033[1;40;31mThe OS does not identify,So this script is not executede.\n\033[0m" rm -rf $LOCKfile exit 0 else echo -e "\033[40;32mThis OS is $os_release.\n\033[40;37m" fi echo -e "\033[40;32mStep 3.Begen to modify the source configration file and update.\n\033[40;37m" case "$os_release" in redhat5|centos5|aliyun5) modify_rhel5_yum ;; redhat6|centos6|aliyun6) modify_rhel6_yum ;; ubuntu10) update_ubuntu10_apt_source ;; ubuntu1204) update_ubuntu1204_apt_source ;; ubuntu1210) update_ubuntu1210_apt_source ;; debian6) update_debian_apt_source ;; esac echo -e "\033[40;32mSuccess,exit now!\n\033[40;37m" rm -rf $LOCKfile |
2020-10-11
shell脚本实现磁盘监控系统2020-10-11
详解shell 函数定义与调用2020-10-11
一键配置本地yum源的shell脚本Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。这篇文章主要介绍了shell脚本之备份数据库、代码上线,需要的朋友可以参考下...
2020-02-24