diff --git a/cdnfly/50113.sh b/cdnfly/50113.sh new file mode 100644 index 0000000..3598606 --- /dev/null +++ b/cdnfly/50113.sh @@ -0,0 +1,189 @@ +#!/bin/bash + +set -o errexit + +download(){ + # wget安装 + if [[ ! `which wget` ]]; then + if check_sys sysRelease ubuntu;then + apt-get install -y wget + elif check_sys sysRelease centos;then + yum install -y wget + fi + fi + + local url1=$1 + local url2=$2 + local filename=$3 + + speed1=`curl -m 5 -L -s -w '%{speed_download}' "$url1" -o /dev/null || true` + speed1=${speed1%%.*} + speed2=`curl -m 5 -L -s -w '%{speed_download}' "$url2" -o /dev/null || true` + speed2=${speed2%%.*} + echo "speed1:"$speed1 + echo "speed2:"$speed2 + url=$url1 + if [[ $speed2 -gt $speed1 ]]; then + url=$url2 + fi + echo "using url:"$url + wget "$url" -O $filename + +} + +#判断系统版本 +check_sys(){ + local checkType=$1 + local value=$2 + + local release='' + local systemPackage='' + local packageSupport='' + + if [[ "$release" == "" ]] || [[ "$systemPackage" == "" ]] || [[ "$packageSupport" == "" ]];then + + if [[ -f /etc/redhat-release ]];then + release="centos" + systemPackage="yum" + packageSupport=true + + elif cat /etc/issue | grep -q -E -i "debian";then + release="debian" + systemPackage="apt" + packageSupport=true + + elif cat /etc/issue | grep -q -E -i "ubuntu";then + release="ubuntu" + systemPackage="apt" + packageSupport=true + + elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat";then + release="centos" + systemPackage="yum" + packageSupport=true + + elif cat /proc/version | grep -q -E -i "debian";then + release="debian" + systemPackage="apt" + packageSupport=true + + elif cat /proc/version | grep -q -E -i "ubuntu";then + release="ubuntu" + systemPackage="apt" + packageSupport=true + + elif cat /proc/version | grep -q -E -i "centos|red hat|redhat";then + release="centos" + systemPackage="yum" + packageSupport=true + + else + release="other" + systemPackage="other" + packageSupport=false + fi + fi + + echo -e "release=$release\nsystemPackage=$systemPackage\npackageSupport=$packageSupport\n" > /tmp/ezhttp_sys_check_result + + if [[ $checkType == "sysRelease" ]]; then + if [ "$value" == "$release" ];then + return 0 + else + return 1 + fi + + elif [[ $checkType == "packageManager" ]]; then + if [ "$value" == "$systemPackage" ];then + return 0 + else + return 1 + fi + + elif [[ $checkType == "packageSupport" ]]; then + if $packageSupport;then + return 0 + else + return 1 + fi + fi +} + +get_sys_ver() { +cat > /tmp/sys_ver.py <",sys_ver) +if sys_ver.startswith("centos-7"): + sys_ver = "centos-7" +if sys_ver.startswith("centos-6"): + sys_ver = "centos-6" +print sys_ver +EOF +echo `python /tmp/sys_ver.py` +} + +upgrade_db() { +echo + +# 更新panel或conf +flist='' + +for f in `echo $flist`;do +\cp -a /opt/$dir_name/$f /opt/cdnfly/$f +done + +} + +update_file() { +cd /opt/$dir_name/master/ +for i in `find ./ | grep -vE "^./$|^./agent$|^./conf$|conf/config.py|conf/nginx_global.tpl|conf/supervisor_master.conf|conf/nginx_http_default.tpl|conf/nginx_http_vhost.tpl|conf/nginx_stream_vhost.tpl|conf/ssl.cert|conf/ssl.key|^./panel"`;do + \cp -aT $i /opt/cdnfly/master/$i +done + +} + +# 定义版本 +version_name="v5.1.13" +version_num="50113" +dir_name="cdnfly-master-$version_name" +tar_gz_name="$dir_name-$(get_sys_ver).tar.gz" + +# 下载安装包 +cd /opt +echo "开始下载$tar_gz_name..." +download "https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/master/$tar_gz_name" "https://github.com/LoveesYe/cdnflydadao/raw/main/cdnfly/v5.1.13/master/$tar_gz_name" "$tar_gz_name" +echo "下载完成" + +echo "开始解压..." +rm -rf $dir_name +tar xf $tar_gz_name +echo "解压完成" + +cd /opt +echo "准备升级数据库..." +upgrade_db +echo "升级数据库完成" + +echo "更新文件..." +update_file +echo "更新文件完成." + +echo "修改config.py版本..." +sed -i "s/VERSION_NAME=.*/VERSION_NAME=\"$version_name\"/" /opt/cdnfly/master/conf/config.py +sed -i "s/VERSION_NUM=.*/VERSION_NUM=\"$version_num\"/" /opt/cdnfly/master/conf/config.py +echo "修改完成" + +echo "开始重启主控..." +supervisorctl restart all +#supervisorctl reload +echo "重启完成" + +echo "清理文件" +rm -rf /opt/$dir_name +rm -f /opt/$tar_gz_name +echo "清理完成" + +echo "完成$version_name版本升级" \ No newline at end of file