#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH LANG=en_US.UTF-8 if [ ! -d /www/server/panel/BTPanel ];then echo "=============================================" echo "错误, 5.x不可以使用此命令升级!" echo "5.9平滑升级到6.0的命令:curl http://download.bt.cn/install/update_to_6.sh|bash" exit 0; fi if [ ! -f "/www/server/panel/pyenv/bin/python3" ];then echo "=============================================" echo "错误, 当前面板过旧/py-2.7/无pyenv环境,无法升级至最新版面板" echo "请截图发帖至论坛www.bt.cn/bbs求助" exit 0; fi public_file=/www/server/panel/install/public.sh publicFileMd5=$(md5sum ${public_file} 2>/dev/null|awk '{print $1}') md5check="acfc18417ee58c64ff99d186f855e3e1" if [ "${publicFileMd5}" != "${md5check}" ]; then wget -O Tpublic.sh http://download.bt.cn/install/public.sh -T 20; publicFileMd5=$(md5sum Tpublic.sh 2>/dev/null|awk '{print $1}') if [ "${publicFileMd5}" == "${md5check}" ]; then \cp -rpa Tpublic.sh $public_file fi rm -f Tpublic.sh fi . $public_file Centos8Check=$(cat /etc/redhat-release | grep ' 8.' | grep -iE 'centos|Red Hat') if [ "${Centos8Check}" ];then if [ ! -f "/usr/bin/python" ] && [ -f "/usr/bin/python3" ] && [ ! -d "/www/server/panel/pyenv" ]; then ln -sf /usr/bin/python3 /usr/bin/python fi fi mypip="pip" env_path=/www/server/panel/pyenv/bin/activate if [ -f $env_path ];then mypip="/www/server/panel/pyenv/bin/pip" fi download_Url=$NODE_URL wget -O fix_install.sh $download_Url/tools/fix_install.sh nohup bash fix_install.sh > /www/server/panel/install/fix.log 2>&1 & setup_path=/www version=$(curl -Ss --connect-timeout 5 -m 2 http://www.bt.cn/api/panel/get_version) if [ "$version" = '' ];then version='8.0.1' fi armCheck=$(uname -m|grep arm) if [ "${armCheck}" ];then version='7.7.0' fi if [ "$1" ];then version=$1 fi wget -T 5 -O /tmp/panel.zip $download_Url/install/update/LinuxPanel-${version}.zip dsize=$(du -b /tmp/panel.zip|awk '{print $1}') if [ $dsize -lt 10240 ];then echo "获取更新包失败,请稍后更新或联系宝塔运维" exit; fi unzip -o /tmp/panel.zip -d $setup_path/server/ > /dev/null rm -f /tmp/panel.zip cd $setup_path/server/panel/ check_bt=`cat /etc/init.d/bt` if [ "${check_bt}" = "" ];then rm -f /etc/init.d/bt wget -O /etc/init.d/bt $download_Url/install/src/bt7.init -T 20 chmod +x /etc/init.d/bt fi rm -f /www/server/panel/*.pyc rm -f /www/server/panel/class/*.pyc #pip install flask_sqlalchemy #pip install itsdangerous==0.24 pip_list=$($mypip list) request_v=$(btpip list 2>/dev/null|grep "requests "|awk '{print $2}'|cut -d '.' -f 2) if [ "$request_v" = "" ] || [ "${request_v}" -gt "28" ];then $mypip install requests==2.27.1 fi openssl_v=$(echo "$pip_list"|grep pyOpenSSL) if [ "$openssl_v" = "" ];then $mypip install pyOpenSSL fi #cffi_v=$(echo "$pip_list"|grep cffi|grep 1.12.) #if [ "$cffi_v" = "" ];then # $mypip install cffi==1.12.3 #fi pymysql=$(echo "$pip_list"|grep pymysql) if [ "$pymysql" = "" ];then $mypip install pymysql fi pymysql=$(echo "$pip_list"|grep pycryptodome) if [ "$pymysql" = "" ];then $mypip install pycryptodome fi #psutil=$(echo "$pip_list"|grep psutil|awk '{print $2}'|grep '5.7.') #if [ "$psutil" = "" ];then # $mypip install -U psutil #fi if [ -d /www/server/panel/class/BTPanel ];then rm -rf /www/server/panel/class/BTPanel fi chattr -i /etc/init.d/bt chmod +x /etc/init.d/bt echo "=====================================" rm -f /dev/shm/bt_sql_tips.pl kill $(ps aux|grep -E "task.pyc|main.py"|grep -v grep|awk '{print $2}') /etc/init.d/bt start echo 'True' > /www/server/panel/data/restart.pl pkill -9 gunicorn & echo "已成功升级到[$version]${Ver}";