時間:2020-10-11來源:www.farandoo.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