| 
					
					
						
							
						
					
					
				 | 
				@ -4,7 +4,10 @@ export PATH | 
			
		
		
	
		
			
				 | 
				 | 
				LANG=en_US.UTF-8 | 
				 | 
				 | 
				LANG=en_US.UTF-8 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				INSTALL_LOGFILE="/tmp/btpanel-install.log" | 
				 | 
				 | 
				INSTALL_LOGFILE="/tmp/btpanel-install.log" | 
			
		
		
	
		
			
				 | 
				 | 
				# exec > >(tee -a "$INSTALL_LOGFILE") 2>&1  | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				if [ -f "$INSTALL_LOGFILE" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    rm -f $INSTALL_LOGFILE | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				exec > >(tee -a "$INSTALL_LOGFILE") 2>&1  | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Btapi_Url='http://www.example.com' | 
				 | 
				 | 
				Btapi_Url='http://www.example.com' | 
			
		
		
	
		
			
				 | 
				 | 
				Check_Api=$(curl -Ss --connect-timeout 5 -m 2 $Btapi_Url/api/SetupCount) | 
				 | 
				 | 
				Check_Api=$(curl -Ss --connect-timeout 5 -m 2 $Btapi_Url/api/SetupCount) | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -23,44 +26,6 @@ if [ "${is64bit}" != '64' ];then | 
			
		
		
	
		
			
				 | 
				 | 
					exit 1 | 
				 | 
				 | 
					exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				fi | 
				 | 
				 | 
				fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Ready_Check(){ | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    WWW_DISK_SPACE=$(df |grep /www|awk '{print $4}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    ROOT_DISK_SPACE=$(df |grep /$|awk '{print $4}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				  | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				   if [ "${ROOT_DISK_SPACE}" -le 412000 ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					df -h | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        echo -e "系统盘剩余空间不足400M 无法继续安装宝塔面板!" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        echo -e "请尝试清理磁盘空间后再重新进行安装" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        exit 1 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    if [ "${WWW_DISK_SPACE}" ] && [ "${WWW_DISK_SPACE}" -le 412000 ] ;then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        echo -e "/www盘剩余空间不足400M 无法继续安装宝塔面板!" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        echo -e "请尝试清理磁盘空间后再重新进行安装" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				        exit 1 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				    ROOT_DISK_INODE=$(df -i|grep /$|awk '{print $2}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${ROOT_DISK_INODE}" != "0" ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						ROOT_DISK_INODE_FREE=$(df -i|grep /$|awk '{print $4}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						if [ "${ROOT_DISK_INODE_FREE}" -le 1000 ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							echo -e "系统盘剩余inodes空间不足1000,无法继续安装!" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							echo -e "请尝试清理磁盘空间后再重新进行安装" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							exit 1 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					WWW_DISK_INODE==$(df -i|grep /www|awk '{print $2}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${WWW_DISK_INODE}" ] && [ "${WWW_DISK_INODE}" != "0" ] ;then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						WWW_DISK_INODE_FREE=$(df -i|grep /www|awk '{print $4}') | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						if [ "${WWW_DISK_INODE_FREE}" ] && [ "${WWW_DISK_INODE_FREE}" -le 1000 ] ;then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							echo -e "/www盘剩余inodes空间不足1000, 无法继续安装!" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							echo -e "请尝试清理磁盘空间后再重新进行安装" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
							exit 1 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				Centos6Check=$(cat /etc/redhat-release | grep ' 6.' | grep -iE 'centos|Red Hat') | 
				 | 
				 | 
				Centos6Check=$(cat /etc/redhat-release | grep ' 6.' | grep -iE 'centos|Red Hat') | 
			
		
		
	
		
			
				 | 
				 | 
				if [ "${Centos6Check}" ];then | 
				 | 
				 | 
				if [ "${Centos6Check}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
					echo "Centos6不支持安装宝塔面板,请更换Centos7/8安装宝塔面板" | 
				 | 
				 | 
					echo "Centos6不支持安装宝塔面板,请更换Centos7/8安装宝塔面板" | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -69,7 +34,7 @@ fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				UbuntuCheck=$(cat /etc/issue|grep Ubuntu|awk '{print $2}'|cut -f 1 -d '.') | 
				 | 
				 | 
				UbuntuCheck=$(cat /etc/issue|grep Ubuntu|awk '{print $2}'|cut -f 1 -d '.') | 
			
		
		
	
		
			
				 | 
				 | 
				if [ "${UbuntuCheck}" ] && [ "${UbuntuCheck}" -lt "16" ];then | 
				 | 
				 | 
				if [ "${UbuntuCheck}" ] && [ "${UbuntuCheck}" -lt "16" ];then | 
			
		
		
	
		
			
				 | 
				 | 
					echo "Ubuntu ${UbuntuCheck}不支持安装宝塔面板,建议更换Ubuntu22/24安装宝塔面板" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					echo "Ubuntu ${UbuntuCheck}不支持安装宝塔面板,建议更换Ubuntu18/20安装宝塔面板" | 
			
		
		
	
		
			
				 | 
				 | 
					exit 1 | 
				 | 
				 | 
					exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				fi | 
				 | 
				 | 
				fi | 
			
		
		
	
		
			
				 | 
				 | 
				HOSTNAME_CHECK=$(cat /etc/hostname) | 
				 | 
				 | 
				HOSTNAME_CHECK=$(cat /etc/hostname) | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -101,6 +66,43 @@ panelPort=$(expr $RANDOM % 55535 + 10000) | 
			
		
		
	
		
			
				 | 
				 | 
				# 	IDC_CODE=$1 | 
				 | 
				 | 
				# 	IDC_CODE=$1 | 
			
		
		
	
		
			
				 | 
				 | 
				# fi | 
				 | 
				 | 
				# fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Ready_Check(){ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    WWW_DISK_SPACE=$(df |grep /www|awk '{print $4}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ROOT_DISK_SPACE=$(df |grep /$|awk '{print $4}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				  | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				   if [ "${ROOT_DISK_SPACE}" -le 412000 ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					df -h | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        echo -e "系统盘剩余空间不足400M 无法继续安装宝塔面板!" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        echo -e "请尝试清理磁盘空间后再重新进行安装" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    if [ "${WWW_DISK_SPACE}" ] && [ "${WWW_DISK_SPACE}" -le 412000 ] ;then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        echo -e "/www盘剩余空间不足400M 无法继续安装宝塔面板!" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        echo -e "请尝试清理磁盘空间后再重新进行安装" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ROOT_DISK_INODE=$(df -i|grep /$|awk '{print $2}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${ROOT_DISK_INODE}" != "0" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						ROOT_DISK_INODE_FREE=$(df -i|grep /$|awk '{print $4}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${ROOT_DISK_INODE_FREE}" -le 1000 ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo -e "系统盘剩余inodes空间不足1000,无法继续安装!" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo -e "请尝试清理磁盘空间后再重新进行安装" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					WWW_DISK_INODE==$(df -i|grep /www|awk '{print $2}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${WWW_DISK_INODE}" ] && [ "${WWW_DISK_INODE}" != "0" ] ;then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						WWW_DISK_INODE_FREE=$(df -i|grep /www|awk '{print $4}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${WWW_DISK_INODE_FREE}" ] && [ "${WWW_DISK_INODE_FREE}" -le 1000 ] ;then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo -e "/www盘剩余inodes空间不足1000, 无法继续安装!" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo -e "请尝试清理磁盘空间后再重新进行安装" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							exit 1 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				GetSysInfo(){ | 
				 | 
				 | 
				GetSysInfo(){ | 
			
		
		
	
		
			
				 | 
				 | 
					if [ -s "/etc/redhat-release" ];then | 
				 | 
				 | 
					if [ -s "/etc/redhat-release" ];then | 
			
		
		
	
		
			
				 | 
				 | 
						SYS_VERSION=$(cat /etc/redhat-release) | 
				 | 
				 | 
						SYS_VERSION=$(cat /etc/redhat-release) | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -126,6 +128,28 @@ GetSysInfo(){ | 
			
		
		
	
		
			
				 | 
				 | 
						echo -e "如是新安装系统服务器建议更换至Debian-12/Ubuntu-22/Centos-9系统安装宝塔面板" | 
				 | 
				 | 
						echo -e "如是新安装系统服务器建议更换至Debian-12/Ubuntu-22/Centos-9系统安装宝塔面板" | 
			
		
		
	
		
			
				 | 
				 | 
						echo -e "============================================" | 
				 | 
				 | 
						echo -e "============================================" | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ -f "/usr/sbin/setstatus" ] || [ -f "/usr/sbin/setstatus" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "==================================================" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "  检测到为麒麟系统,可能默认开启安全功能导致安装失败" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "  请执行以下命令关闭安全加固后,再重新安装宝塔面板看是否正常" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "  命令:sudo setstatus softmode -p" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "==================================================" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi   | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					SYS_SSL_LIBS=$(pkg-config --list-all | grep -q libssl) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ -z "$SYS_SSL_LIBS" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo "检测到缺少系统ssl相关依赖,可执行下面命令安装依赖后再重新安装宝塔看是否正常" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo "执行前请确保系统源正常" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ -f "/usr/bin/yum" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo "安装依赖命令: yum install openssl-devel -y" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ -f "/usr/bin/apt-get" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							echo "安装依赖命令: apt-get install libssl-dev -y" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						rm -rf /www/server/panel/pyenv  | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo -e "==================================================" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				Red_Error(){ | 
				 | 
				 | 
				Red_Error(){ | 
			
		
		
	
		
			
				 | 
				 | 
					echo '================================================='; | 
				 | 
				 | 
					echo '================================================='; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -175,11 +199,38 @@ Set_Ssl(){ | 
			
		
		
	
		
			
				 | 
				 | 
				    fi | 
				 | 
				 | 
				    fi | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				Add_lib_Install(){ | 
				 | 
				 | 
				Add_lib_Install(){ | 
			
		
		
	
		
			
				 | 
				 | 
					Get_Versions | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${os_type}" == "el" ] && [ "${os_version}" == "7" ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ -f "/etc/os-release" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						. /etc/os-release | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						OS_V=${VERSION_ID%%.*} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${ID}" == "debian" ] && [[ "${OS_V}" =~ ^(11|12)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							OS_NAME=${ID} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${ID}" == "ubuntu" ] && [[ "${OS_V}" =~ ^(22|24)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							OS_NAME=${ID} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${ID}" == "centos" ] && [[ "${OS_V}" =~ ^(7)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							OS_NAME="el" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${ID}" == "opencloudos" ] && [[ "${OS_V}" =~ ^(9)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							OS_NAME=${ID} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${ID}" == "tencentos" ] && [[ "${OS_V}" =~ ^(4)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							OS_NAME=${ID} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${ID}" == "hce" ] && [[ "${OS_V}" =~ ^(2)$ ]];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						    OS_NAME=${ID} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        elif { [ "${ID}" == "almalinux" ] || [ "${ID}" == "centos" ] || [ "${ID}" == "rocky" ]; } && [[ "${OS_V}" =~ ^(9)$ ]]; then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            OS_NAME="el" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					X86_CHECK=$(uname -m|grep x86_64) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${OS_NAME}" ] && [ "${X86_CHECK}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${PM}" = "yum" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							mtype="1" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						elif [ "${PM}" = "apt-get" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							mtype="4" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
						cd /www/server/panel/class | 
				 | 
				 | 
						cd /www/server/panel/class | 
			
		
		
	
		
			
				 | 
				 | 
						#btpython -c "import panelPlugin; plugin = panelPlugin.panelPlugin(); plugin.check_install_lib('1')" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
						#echo "True" > /tmp/panelTask.pl | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						btpython -c "import panelPlugin; plugin = panelPlugin.panelPlugin(); plugin.check_install_lib('${mtype}')" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo "True" > /tmp/panelTask.pl | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo "True" > /www/server/panel/install/ins_lib.pl | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				Get_Pack_Manager(){ | 
				 | 
				 | 
				Get_Pack_Manager(){ | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -189,6 +240,67 @@ Get_Pack_Manager(){ | 
			
		
		
	
		
			
				 | 
				 | 
						PM="apt-get"		 | 
				 | 
				 | 
						PM="apt-get"		 | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Set_Repo_Url(){ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${PM}"="apt-get" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						ALI_CLOUD_CHECK=$(grep Alibaba /etc/motd) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						Tencent_Cloud=$(cat /etc/hostname |grep -E VM-[0-9]+-[0-9]+) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${ALI_CLOUD_CHECK}" ] || [ "${Tencent_Cloud}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						CN_CHECK=$(curl -sS --connect-timeout 10 -m 10 https://api.bt.cn/api/isCN) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if [ "${CN_CHECK}" == "True" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							SOURCE_URL_CHECK=$(grep -E 'security.ubuntu.com|archive.ubuntu.com|security.debian.org|deb.debian.org' /etc/apt/sources.list) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							# if [ -f "/etc/apt/sources.list.d/ubuntu.sources" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							# 	SOURCE_URL_CHECK=$(grep -E 'security.ubuntu.com|archive.ubuntu.com|security.debian.org|deb.debian.org' /etc/apt/sources.list.d/ubuntu.sources) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							# fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						#GET_SOURCES_URL=$(cat /etc/apt/sources.list|grep ^deb|head -n 1|awk -F[/:] '{print $4}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						GET_SOURCES_URL=$(cat /etc/apt/sources.list|grep ^deb|head -n 1|sed -E 's|^[^ ]+ https?://([^/]+).*|\1|') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						# if [ -f "/etc/apt/sources.list.d/ubuntu.sources" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						# 	GET_SOURCES_URL=$(cat /etc/apt/sources.list.d/ubuntu.sources|grep URIs:|head -n 1|sed -E 's|^[^ ]+ https?://([^/]+).*|\1|') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						# fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						NODE_CHECK=$(curl --connect-timeout 3 -m 3 2>/dev/null -w "%{http_code} %{time_total}" ${GET_SOURCES_URL} -o /dev/null) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						NODE_STATUS=$(echo ${NODE_CHECK}|awk '{print $1}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						TIME_TOTAL=$(echo ${NODE_CHECK}|awk '{print $2 * 1000}'|cut -d '.' -f 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if { [ "${NODE_STATUS}" != "200" ] && [ "${NODE_STATUS}" != "301" ]; } || [ "${TIME_TOTAL}" -ge "150" ] || [ "${SOURCE_URL_CHECK}" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							\cp -rpa /etc/apt/sources.list /etc/apt/sources.list.btbackup | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							apt_lists=(mirrors.cloud.tencent.com  mirrors.163.com repo.huaweicloud.com mirrors.tuna.tsinghua.edu.cn mirrors.aliyun.com mirrors.ustc.edu.cn ) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							for list in ${apt_lists[@]}; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							do | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								NODE_CHECK=$(curl --connect-timeout 3 -m 3 2>/dev/null -w "%{http_code} %{time_total}" ${list} -o /dev/null) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								NODE_STATUS=$(echo ${NODE_CHECK}|awk '{print $1}') | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								TIME_TOTAL=$(echo ${NODE_CHECK}|awk '{print $2 * 1000}'|cut -d '.' -f 1) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								if [ "${NODE_STATUS}" == "200" ] || [ "${NODE_STATUS}" == "301" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									if [ "${TIME_TOTAL}" -le "150" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										if [ -f "/etc/apt/sources.list" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/${GET_SOURCES_URL}/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/cn.security.ubuntu.com/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/cn.archive.ubuntu.com/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/security.ubuntu.com/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/archive.ubuntu.com/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/security.debian.org/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
											sed -i "s/deb.debian.org/${list}/g" /etc/apt/sources.list | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# if [ -f "/etc/apt/sources.list.d/ubuntu.sources" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	\cp -rpa /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/${GET_SOURCES_URL}/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/cn.security.ubuntu.com/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/cn.archive.ubuntu.com/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/security.ubuntu.com/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/archive.ubuntu.com/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/security.debian.org/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# 	sed -i "s/deb.debian.org/${list}/g" /etc/apt/sources.list.d/ubuntu.sources | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										# fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
										break; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							done | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				Auto_Swap() | 
				 | 
				 | 
				Auto_Swap() | 
			
		
		
	
		
			
				 | 
				 | 
				{ | 
				 | 
				 | 
				{ | 
			
		
		
	
		
			
				 | 
				 | 
					swap=$(free |grep Swap|awk '{print $2}') | 
				 | 
				 | 
					swap=$(free |grep Swap|awk '{print $2}') | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -278,14 +390,7 @@ Set_Centos7_Repo(){ | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "$?" != "0" ] ;then | 
				 | 
				 | 
					if [ "$?" != "0" ] ;then | 
			
		
		
	
		
			
				 | 
				 | 
						sed -i "s/vault.epel.cloud/mirrors.cloud.tencent.com/g" /etc/yum.repos.d/*.repo | 
				 | 
				 | 
						sed -i "s/vault.epel.cloud/mirrors.cloud.tencent.com/g" /etc/yum.repos.d/*.repo | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				# Set_Centos7_Repo(){ | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				# 		if [ -z "${download_Url}" ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				# 			download_Url="http://download.bt.cn" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				# 		fi | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				# 		curl -Ss --connect-timeout 3 -m 60 ${download_Url}/install/vault-repo.sh|bash | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				# } | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				Set_Centos8_Repo(){ | 
				 | 
				 | 
				Set_Centos8_Repo(){ | 
			
		
		
	
		
			
				 | 
				 | 
					HUAWEI_CHECK=$(cat /etc/motd |grep "Huawei Cloud") | 
				 | 
				 | 
					HUAWEI_CHECK=$(cat /etc/motd |grep "Huawei Cloud") | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${HUAWEI_CHECK}" ] && [ "${is64bit}" == "64" ];then | 
				 | 
				 | 
					if [ "${HUAWEI_CHECK}" ] && [ "${is64bit}" == "64" ];then | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -324,12 +429,16 @@ Set_Centos8_Repo(){ | 
			
		
		
	
		
			
				 | 
				 | 
						rm -f /etc/yum.repos.d/*.repo | 
				 | 
				 | 
						rm -f /etc/yum.repos.d/*.repo | 
			
		
		
	
		
			
				 | 
				 | 
						tar -xvzf el8repo.tar.gz -C /etc/yum.repos.d/ | 
				 | 
				 | 
						tar -xvzf el8repo.tar.gz -C /etc/yum.repos.d/ | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
					yum install unzip -y | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					yum install unzip tar -y | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "$?" != "0" ] ;then | 
				 | 
				 | 
					if [ "$?" != "0" ] ;then | 
			
		
		
	
		
			
				 | 
				 | 
						sed -i "s/vault.epel.cloud/mirrors.cloud.tencent.com/g" /etc/yum.repos.d/*.repo | 
				 | 
				 | 
						sed -i "s/vault.epel.cloud/mirrors.cloud.tencent.com/g" /etc/yum.repos.d/*.repo | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				get_node_url(){ | 
				 | 
				 | 
				get_node_url(){ | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    if [ "${PM}" = "yum" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        yum install wget -y | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    fi | 
			
		
		
	
		
			
				 | 
				 | 
					if [ ! -f /bin/curl ];then | 
				 | 
				 | 
					if [ ! -f /bin/curl ];then | 
			
		
		
	
		
			
				 | 
				 | 
						if [ "${PM}" = "yum" ]; then | 
				 | 
				 | 
						if [ "${PM}" = "yum" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
							yum install curl -y | 
				 | 
				 | 
							yum install curl -y | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -506,7 +615,8 @@ Install_RPM_Pack(){ | 
			
		
		
	
		
			
				 | 
				 | 
				Install_Deb_Pack(){ | 
				 | 
				 | 
				Install_Deb_Pack(){ | 
			
		
		
	
		
			
				 | 
				 | 
					ln -sf bash /bin/sh | 
				 | 
				 | 
					ln -sf bash /bin/sh | 
			
		
		
	
		
			
				 | 
				 | 
					UBUNTU_22=$(cat /etc/issue|grep "Ubuntu 22") | 
				 | 
				 | 
					UBUNTU_22=$(cat /etc/issue|grep "Ubuntu 22") | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${UBUNTU_22}" ];then | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					UBUNTU_24=$(cat /etc/issue|grep "Ubuntu 24") | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${UBUNTU_22}" ] || [ "${UBUNTU_24}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
						apt-get remove needrestart -y | 
				 | 
				 | 
						apt-get remove needrestart -y | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
					ALIYUN_CHECK=$(cat /etc/motd|grep "Alibaba Cloud ") | 
				 | 
				 | 
					ALIYUN_CHECK=$(cat /etc/motd|grep "Alibaba Cloud ") | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -514,6 +624,13 @@ Install_Deb_Pack(){ | 
			
		
		
	
		
			
				 | 
				 | 
						apt-get remove libicu70 -y | 
				 | 
				 | 
						apt-get remove libicu70 -y | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
					apt-get update -y | 
				 | 
				 | 
					apt-get update -y | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					FNOS_CHECK=$(cat /etc/issue|grep fnOS) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${FNOS_CHECK}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						apt-get install libc6 --allow-change-held-packages -y | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						apt-get install libc6-dev --allow-change-held-packages -y | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					apt-get install bash -y | 
				 | 
				 | 
					apt-get install bash -y | 
			
		
		
	
		
			
				 | 
				 | 
					if [ -f "/usr/bin/bash" ];then | 
				 | 
				 | 
					if [ -f "/usr/bin/bash" ];then | 
			
		
		
	
		
			
				 | 
				 | 
						ln -sf /usr/bin/bash /bin/sh | 
				 | 
				 | 
						ln -sf /usr/bin/bash /bin/sh | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -738,10 +855,10 @@ Install_Python_Lib(){ | 
			
		
		
	
		
			
				 | 
				 | 
					echo "===============================================" | 
				 | 
				 | 
					echo "===============================================" | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${os_version}" != "" ];then | 
				 | 
				 | 
					if [ "${os_version}" != "" ];then | 
			
		
		
	
		
			
				 | 
				 | 
						pyenv_file="/www/pyenv.tar.gz" | 
				 | 
				 | 
						pyenv_file="/www/pyenv.tar.gz" | 
			
		
		
	
		
			
				 | 
				 | 
						wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 15 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 20 | 
			
		
		
	
		
			
				 | 
				 | 
						if [ "$?" != "0" ];then | 
				 | 
				 | 
						if [ "$?" != "0" ];then | 
			
		
		
	
		
			
				 | 
				 | 
							get_node_url $download_Url | 
				 | 
				 | 
							get_node_url $download_Url | 
			
		
		
	
		
			
				 | 
				 | 
							wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 15 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 20 | 
			
		
		
	
		
			
				 | 
				 | 
						fi | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
						tmp_size=$(du -b $pyenv_file|awk '{print $1}') | 
				 | 
				 | 
						tmp_size=$(du -b $pyenv_file|awk '{print $1}') | 
			
		
		
	
		
			
				 | 
				 | 
						if [ $tmp_size -lt 703460 ];then | 
				 | 
				 | 
						if [ $tmp_size -lt 703460 ];then | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -803,6 +920,7 @@ Install_Python_Lib(){ | 
			
		
		
	
		
			
				 | 
				 | 
					$pyenv_path/pyenv/bin/pip install -r $pyenv_path/pyenv/pip.txt | 
				 | 
				 | 
					$pyenv_path/pyenv/bin/pip install -r $pyenv_path/pyenv/pip.txt | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					wget -O pip-packs.txt $download_Url/install/pyenv/pip-packs.txt | 
				 | 
				 | 
					wget -O pip-packs.txt $download_Url/install/pyenv/pip-packs.txt | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					echo "正在后台安装pip依赖请稍等.........." | 
			
		
		
	
		
			
				 | 
				 | 
					PIP_PACKS=$(cat pip-packs.txt) | 
				 | 
				 | 
					PIP_PACKS=$(cat pip-packs.txt) | 
			
		
		
	
		
			
				 | 
				 | 
					for P_PACK in ${PIP_PACKS}; | 
				 | 
				 | 
					for P_PACK in ${PIP_PACKS}; | 
			
		
		
	
		
			
				 | 
				 | 
					do | 
				 | 
				 | 
					do | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -882,9 +1000,29 @@ Install_Bt(){ | 
			
		
		
	
		
			
				 | 
				 | 
							yum install unzip -y | 
				 | 
				 | 
							yum install unzip -y | 
			
		
		
	
		
			
				 | 
				 | 
						elif [ "${PM}" = "apt-get" ]; then | 
				 | 
				 | 
						elif [ "${PM}" = "apt-get" ]; then | 
			
		
		
	
		
			
				 | 
				 | 
							apt-get update | 
				 | 
				 | 
							apt-get update | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							apt-get install unzip -y 2>&1|tee /tmp/apt_install_log.log | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							UNZIP_CHECK=$(which unzip) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							if [ "$?" != "0" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								RECONFIGURE_CHECK=$(grep "dpkg --configure -a" /tmp/apt_install_log.log) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								if [ "${RECONFIGURE_CHECK}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									dpkg --configure -a | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								APT_LOCK_CHECH=$(grep "/var/lib/dpkg/lock" /tmp/apt_install_log.log) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								if [ "${APT_LOCK_CHECH}" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									pkill dpkg | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									pkill apt-get | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									pkill apt | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									[ -e /var/lib/dpkg/lock-frontend ] && rm -f /var/lib/dpkg/lock-frontend | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									[ -e /var/lib/dpkg/lock ] && rm -f /var/lib/dpkg/lock | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									[ -e /var/lib/apt/lists/lock ] && rm -f /var/lib/apt/lists/lock | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									[ -e /var/cache/apt/archives/lock ] && rm -f /var/cache/apt/archives/lock | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
									dpkg --configure -a | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
								sleep 5 | 
			
		
		
	
		
			
				 | 
				 | 
								apt-get install unzip -y | 
				 | 
				 | 
								apt-get install unzip -y | 
			
		
		
	
		
			
				 | 
				 | 
							fi | 
				 | 
				 | 
							fi | 
			
		
		
	
		
			
				 | 
				 | 
						fi | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					unzip -o panel.zip -d ${setup_path}/server/ > /dev/null | 
				 | 
				 | 
					unzip -o panel.zip -d ${setup_path}/server/ > /dev/null | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -1023,6 +1161,7 @@ Set_Bt_Panel(){ | 
			
		
		
	
		
			
				 | 
				 | 
						touch t.pl | 
				 | 
				 | 
						touch t.pl | 
			
		
		
	
		
			
				 | 
				 | 
						ls -al python3.7 python | 
				 | 
				 | 
						ls -al python3.7 python | 
			
		
		
	
		
			
				 | 
				 | 
						lsattr python3.7 python | 
				 | 
				 | 
						lsattr python3.7 python | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						btpython /www/server/panel/BT-Panel | 
			
		
		
	
		
			
				 | 
				 | 
						Red_Error "ERROR: The BT-Panel service startup failed." "ERROR: 宝塔启动失败" | 
				 | 
				 | 
						Red_Error "ERROR: The BT-Panel service startup failed." "ERROR: 宝塔启动失败" | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -1110,6 +1249,13 @@ Get_Ip_Address(){ | 
			
		
		
	
		
			
				 | 
				 | 
						fi | 
				 | 
				 | 
						fi | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
					 | 
				 | 
				 | 
					 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					CN_CHECK=$(curl -sS --connect-timeout 10 -m 10 http://www.example.com/api/isCN) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					if [ "${CN_CHECK}" == "True" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        	echo "True" > /www/server/panel/data/domestic_ip.pl | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					else | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						echo "True" > /www/server/panel/data/foreign_ip.pl | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					ipv4Check=$($python_bin -c "import re; print(re.match('^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$','${getIpAddress}'))") | 
				 | 
				 | 
					ipv4Check=$($python_bin -c "import re; print(re.match('^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$','${getIpAddress}'))") | 
			
		
		
	
		
			
				 | 
				 | 
					if [ "${ipv4Check}" == "None" ];then | 
				 | 
				 | 
					if [ "${ipv4Check}" == "None" ];then | 
			
		
		
	
		
			
				 | 
				 | 
						ipv6Address=$(echo ${getIpAddress}|tr -d "[]") | 
				 | 
				 | 
						ipv6Address=$(echo ${getIpAddress}|tr -d "[]") | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -1144,6 +1290,7 @@ Install_Main(){ | 
			
		
		
	
		
			
				 | 
				 | 
					Lock_Clear | 
				 | 
				 | 
					Lock_Clear | 
			
		
		
	
		
			
				 | 
				 | 
					System_Check | 
				 | 
				 | 
					System_Check | 
			
		
		
	
		
			
				 | 
				 | 
					Get_Pack_Manager | 
				 | 
				 | 
					Get_Pack_Manager | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					Set_Repo_Url | 
			
		
		
	
		
			
				 | 
				 | 
					get_node_url | 
				 | 
				 | 
					get_node_url | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					MEM_TOTAL=$(free -g|grep Mem|awk '{print $2}') | 
				 | 
				 | 
					MEM_TOTAL=$(free -g|grep Mem|awk '{print $2}') | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -1182,6 +1329,7 @@ echo " | 
			
		
		
	
		
			
				 | 
				 | 
				+---------------------------------------------------------------------- | 
				 | 
				 | 
				+---------------------------------------------------------------------- | 
			
		
		
	
		
			
				 | 
				 | 
				" | 
				 | 
				 | 
				" | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				while [ ${#} -gt 0 ]; do | 
				 | 
				 | 
				while [ ${#} -gt 0 ]; do | 
			
		
		
	
		
			
				 | 
				 | 
					case $1 in | 
				 | 
				 | 
					case $1 in | 
			
		
		
	
		
			
				 | 
				 | 
						-u|--user) | 
				 | 
				 | 
						-u|--user) | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -1245,6 +1393,7 @@ if [ -f "/www/server/panel/BT-Panel" ];then | 
			
		
		
	
		
			
				 | 
				 | 
					fi | 
				 | 
				 | 
					fi | 
			
		
		
	
		
			
				 | 
				 | 
				fi | 
				 | 
				 | 
				fi | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				ARCH_LINUX=$(cat /etc/os-release |grep "Arch Linux") | 
				 | 
				 | 
				ARCH_LINUX=$(cat /etc/os-release |grep "Arch Linux") | 
			
		
		
	
		
			
				 | 
				 | 
				if [ "${ARCH_LINUX}" ] && [ -f "/usr/bin/pacman" ];then | 
				 | 
				 | 
				if [ "${ARCH_LINUX}" ] && [ -f "/usr/bin/pacman" ];then | 
			
		
		
	
		
			
				 | 
				 | 
					pacman -Sy  | 
				 | 
				 | 
					pacman -Sy  | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -1265,21 +1414,18 @@ echo -e "==================================================================" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "\033[32mCongratulations! Installed successfully!\033[0m" | 
				 | 
				 | 
				echo -e "\033[32mCongratulations! Installed successfully!\033[0m" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "========================面板账户登录信息==========================" | 
				 | 
				 | 
				echo -e "========================面板账户登录信息==========================" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "" | 
				 | 
				 | 
				echo -e "" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				echo -e " 【云服务器】请在安全组放行 $panelPort 端口" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 外网面板地址: ${HTTP_S}://${getIpAddress}:${panelPort}${auth_path}" | 
				 | 
				 | 
				echo -e " 外网面板地址: ${HTTP_S}://${getIpAddress}:${panelPort}${auth_path}" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 内网面板地址: ${HTTP_S}://${LOCAL_IP}:${panelPort}${auth_path}" | 
				 | 
				 | 
				echo -e " 内网面板地址: ${HTTP_S}://${LOCAL_IP}:${panelPort}${auth_path}" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " username: $username" | 
				 | 
				 | 
				echo -e " username: $username" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " password: $password" | 
				 | 
				 | 
				echo -e " password: $password" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " " | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "=========================打开面板前请看===========================" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 【云服务器】请在安全组放行 $panelPort 端口" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 因默认启用自签证书https加密访问,浏览器将提示不安全" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 点击【高级】-【继续访问】或【接受风险并继续】访问" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e " 教程:https://www.bt.cn/bbs/thread-117246-1-1.html" | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "" | 
				 | 
				 | 
				echo -e "" | 
			
		
		
	
		
			
				 | 
				 | 
				echo -e "==================================================================" | 
				 | 
				 | 
				echo -e "==================================================================" | 
			
		
		
	
		
			
				 | 
				 | 
				endTime=`date +%s` | 
				 | 
				 | 
				endTime=`date +%s` | 
			
		
		
	
		
			
				 | 
				 | 
				((outTime=($endTime-$startTime)/60)) | 
				 | 
				 | 
				((outTime=($endTime-$startTime)/60)) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				if [ "${outTime}" -le "5" ];then | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    echo ${download_Url} > /www/server/panel/install/d_node.pl | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				fi | 
			
		
		
	
		
			
				 | 
				 | 
				if [ "${outTime}" == "0" ];then | 
				 | 
				 | 
				if [ "${outTime}" == "0" ];then | 
			
		
		
	
		
			
				 | 
				 | 
					((outTime=($endTime-$startTime))) | 
				 | 
				 | 
					((outTime=($endTime-$startTime))) | 
			
		
		
	
		
			
				 | 
				 | 
					echo -e "Time consumed:\033[32m $outTime \033[0mseconds!" | 
				 | 
				 | 
					echo -e "Time consumed:\033[32m $outTime \033[0mseconds!" | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |