1 changed files with 189 additions and 0 deletions
@ -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 <<EOF |
||||||
|
import platform |
||||||
|
import re |
||||||
|
|
||||||
|
sys_ver = platform.platform() |
||||||
|
sys_ver = re.sub(r'.*-with-(.*)-.*',"\g<1>",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版本升级" |
Loading…
Reference in new issue