23.08.03-update
parent
307e5e056a
commit
ffd3a04c09
|
@ -3,6 +3,9 @@ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
|||
export PATH
|
||||
LANG=en_US.UTF-8
|
||||
|
||||
_REPO_URL='https://git.xinac.net'
|
||||
_BT_REPO_URL=$_REPO_URL'/github/btpanel-v7.7.0/raw/branch/main'
|
||||
|
||||
if [ $(whoami) != "root" ];then
|
||||
echo "请使用root权限执行宝塔安装命令!"
|
||||
exit 1;
|
||||
|
@ -17,10 +20,10 @@ Centos6Check=$(cat /etc/redhat-release | grep ' 6.' | grep -iE 'centos|Red Hat')
|
|||
if [ "${Centos6Check}" ];then
|
||||
echo "Centos6不支持安装宝塔面板,请更换Centos7/8安装宝塔面板"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
UbuntuCheck=$(cat /etc/issue|grep Ubuntu|awk '{print $2}'|cut -f 1 -d '.')
|
||||
if [ "${UbuntuCheck}" -lt "16" ];then
|
||||
if [ "${UbuntuCheck}" ] && [ "${UbuntuCheck}" -lt "16" ];then
|
||||
echo "Ubuntu ${UbuntuCheck}不支持安装宝塔面板,建议更换Ubuntu18/20安装宝塔面板"
|
||||
exit 1
|
||||
fi
|
||||
|
@ -95,7 +98,7 @@ Get_Pack_Manager(){
|
|||
if [ -f "/usr/bin/yum" ] && [ -d "/etc/yum.repos.d" ]; then
|
||||
PM="yum"
|
||||
elif [ -f "/usr/bin/apt-get" ] && [ -f "/usr/bin/dpkg" ]; then
|
||||
PM="apt-get"
|
||||
PM="apt-get"
|
||||
fi
|
||||
}
|
||||
Auto_Swap()
|
||||
|
@ -118,7 +121,7 @@ Auto_Swap()
|
|||
echo "Swap total sizse: $swap";
|
||||
return;
|
||||
fi
|
||||
|
||||
|
||||
sed -i "/\/www\/swap/d" /etc/fstab
|
||||
rm -f $swapFile
|
||||
}
|
||||
|
@ -128,7 +131,7 @@ Service_Add(){
|
|||
chkconfig --level 2345 bt on
|
||||
elif [ "${PM}" == "apt-get" ]; then
|
||||
update-rc.d bt defaults
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
get_node_url(){
|
||||
|
@ -146,10 +149,11 @@ get_node_url(){
|
|||
echo '---------------------------------------------';
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
echo '---------------------------------------------';
|
||||
echo "Selected download node...";
|
||||
nodes=(http://dg2.bt.cn http://dg1.bt.cn http://125.90.93.52:5880 http://36.133.1.8:5880 http://123.129.198.197 http://38.34.185.130 http://116.213.43.206:5880 http://128.1.164.196);
|
||||
# nodes=(http://dg2.bt.cn http://dg1.bt.cn http://125.90.93.52:5880 http://36.133.1.8:5880 http://123.129.198.197 http://38.34.185.130 http://116.213.43.206:5880 http://128.1.164.196);
|
||||
nodes=(https://dg2.bt.cn https://download.bt.cn https://ctcc1-node.bt.cn https://cmcc1-node.bt.cn https://ctcc2-node.bt.cn https://hk1-node.bt.cn https://na1-node.bt.cn https://jp1-node.bt.cn);
|
||||
tmp_file1=/dev/shm/net_test1.pl
|
||||
tmp_file2=/dev/shm/net_test2.pl
|
||||
[ -f "${tmp_file1}" ] && rm -f ${tmp_file1}
|
||||
|
@ -158,7 +162,7 @@ get_node_url(){
|
|||
touch $tmp_file2
|
||||
for node in ${nodes[@]};
|
||||
do
|
||||
NODE_CHECK=$(curl --connect-timeout 3 -m 3 2>/dev/null -w "%{http_code} %{time_total}" ${node}/net_test|xargs)
|
||||
NODE_CHECK=$(curl --connect-timeout 15 -m 3 2>/dev/null -w "%{http_code} %{time_total}" ${node}/net_test|xargs)
|
||||
RES=$(echo ${NODE_CHECK}|awk '{print $1}')
|
||||
NODE_STATUS=$(echo ${NODE_CHECK}|awk '{print $2}')
|
||||
TIME_TOTAL=$(echo ${NODE_CHECK}|awk '{print $3 * 1000 - 500 }'|cut -d '.' -f 1)
|
||||
|
@ -178,7 +182,7 @@ get_node_url(){
|
|||
if [ $RES -ge 3000 ];then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -186,7 +190,7 @@ get_node_url(){
|
|||
if [ -z "$NODE_URL" ];then
|
||||
NODE_URL=$(cat $tmp_file2|sort -g -t " " -k 1|head -n 1|awk '{print $2}')
|
||||
if [ -z "$NODE_URL" ];then
|
||||
NODE_URL='http://download.bt.cn';
|
||||
NODE_URL='https://download.bt.cn';
|
||||
fi
|
||||
fi
|
||||
rm -f $tmp_file1
|
||||
|
@ -201,7 +205,7 @@ Remove_Package(){
|
|||
isPackage=$(rpm -q ${PackageNmae}|grep "not installed")
|
||||
if [ -z "${isPackage}" ];then
|
||||
yum remove ${PackageNmae} -y
|
||||
fi
|
||||
fi
|
||||
elif [ "${PM}" == "apt-get" ];then
|
||||
isPackage=$(dpkg -l|grep ${PackageNmae})
|
||||
if [ "${PackageNmae}" ];then
|
||||
|
@ -219,15 +223,15 @@ Install_RPM_Pack(){
|
|||
|
||||
#SYS_TYPE=$(uname -a|grep x86_64)
|
||||
#yumBaseUrl=$(cat /etc/yum.repos.d/CentOS-Base.repo|grep baseurl=http|cut -d '=' -f 2|cut -d '$' -f 1|head -n 1)
|
||||
#[ "${yumBaseUrl}" ] && checkYumRepo=$(curl --connect-timeout 5 --head -s -o /dev/null -w %{http_code} ${yumBaseUrl})
|
||||
#[ "${yumBaseUrl}" ] && checkYumRepo=$(curl --connect-timeout 5 --head -s -o /dev/null -w %{http_code} ${yumBaseUrl})
|
||||
#if [ "${checkYumRepo}" != "200" ] && [ "${SYS_TYPE}" ];then
|
||||
# curl -Ss --connect-timeout 3 -m 60 https://raw.githubusercontent.com/zhucaidan/btpanel-v7.7.0/main/install/yumRepo_select.sh|bash
|
||||
#fi
|
||||
|
||||
|
||||
#尝试同步时间(从bt.cn)
|
||||
echo 'Synchronizing system time...'
|
||||
getBtTime=$(curl -sS --connect-timeout 3 -m 60 http://www.bt.cn/api/index/get_time)
|
||||
if [ "${getBtTime}" ];then
|
||||
getBtTime=$(curl -sS --connect-timeout 15 -m 60 http://www.bt.cn/api/index/get_time)
|
||||
if [ "${getBtTime}" ];then
|
||||
date -s "$(date -d @$getBtTime +"%Y-%m-%d %H:%M:%S")"
|
||||
fi
|
||||
|
||||
|
@ -261,7 +265,7 @@ Install_RPM_Pack(){
|
|||
fi
|
||||
|
||||
ALI_OS=$(cat /etc/redhat-release |grep "Alibaba Cloud Linux release 3")
|
||||
if [ -z "${ALI_OS}" ];then
|
||||
if [ -z "${ALI_OS}" ];then
|
||||
yum install epel-release -y
|
||||
fi
|
||||
}
|
||||
|
@ -298,7 +302,7 @@ Install_Deb_Pack(){
|
|||
if [ ! -f '/var/spool/cron/crontabs/root' ];then
|
||||
echo '' > /var/spool/cron/crontabs/root
|
||||
chmod 600 /var/spool/cron/crontabs/root
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
Get_Versions(){
|
||||
|
@ -355,7 +359,7 @@ Get_Versions(){
|
|||
fi
|
||||
}
|
||||
Install_Python_Lib(){
|
||||
curl -Ss --connect-timeout 3 -m 60 https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/pip_select.sh|bash
|
||||
curl -Ss --connect-timeout 15 -m 60 $_BT_REPO_URL/install/pip_select.sh|bash
|
||||
pyenv_path="/www/server/panel"
|
||||
if [ -f $pyenv_path/pyenv/bin/python ];then
|
||||
is_ssl=$($python_bin -c "import ssl" 2>&1|grep cannot)
|
||||
|
@ -364,7 +368,7 @@ Install_Python_Lib(){
|
|||
chmod -R 700 $pyenv_path/pyenv/bin
|
||||
is_package=$($python_bin -m psutil 2>&1|grep package)
|
||||
if [ "$is_package" = "" ];then
|
||||
wget -O $pyenv_path/pyenv/pip.txt $download_Url/install/pyenv/pip.txt -T 5
|
||||
wget -O $pyenv_path/pyenv/pip.txt $download_Url/install/pyenv/pip.txt -T 15
|
||||
$pyenv_path/pyenv/bin/pip install -U pip
|
||||
$pyenv_path/pyenv/bin/pip install -U setuptools
|
||||
$pyenv_path/pyenv/bin/pip install -r $pyenv_path/pyenv/pip.txt
|
||||
|
@ -376,7 +380,7 @@ Install_Python_Lib(){
|
|||
fi
|
||||
fi
|
||||
|
||||
py_version="3.7.8"
|
||||
py_version="3.7.16"
|
||||
mkdir -p $pyenv_path
|
||||
echo "True" > /www/disk.pl
|
||||
if [ ! -w /www/disk.pl ];then
|
||||
|
@ -392,15 +396,15 @@ Install_Python_Lib(){
|
|||
if [ "$is_aarch64" != "" ];then
|
||||
is64bit="aarch64"
|
||||
fi
|
||||
|
||||
|
||||
if [ -f "/www/server/panel/pymake.pl" ];then
|
||||
os_version=""
|
||||
rm -f /www/server/panel/pymake.pl
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${os_version}" != "" ];then
|
||||
pyenv_file="/www/pyenv.tar.gz"
|
||||
wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 10
|
||||
wget -O $pyenv_file $download_Url/install/pyenv/pyenv-${os_type}${os_version}-x${is64bit}.tar.gz -T 15
|
||||
tmp_size=$(du -b $pyenv_file|awk '{print $1}')
|
||||
if [ $tmp_size -lt 703460 ];then
|
||||
rm -f $pyenv_file
|
||||
|
@ -411,7 +415,7 @@ Install_Python_Lib(){
|
|||
chmod -R 700 $pyenv_path/pyenv/bin
|
||||
if [ ! -f $pyenv_path/pyenv/bin/python ];then
|
||||
rm -f $pyenv_file
|
||||
Red_Error "ERROR: Install python env fielded." "ERROR: 下载宝塔运行环境失败,请尝试重新安装!"
|
||||
Red_Error "ERROR: Install python env fielded." "ERROR: 下载宝塔运行环境失败,请尝试重新安装!"
|
||||
fi
|
||||
$pyenv_path/pyenv/bin/python3.7 -V
|
||||
if [ $? -eq 0 ];then
|
||||
|
@ -430,7 +434,7 @@ Install_Python_Lib(){
|
|||
cd /www
|
||||
python_src='/www/python_src.tar.xz'
|
||||
python_src_path="/www/Python-${py_version}"
|
||||
wget -O $python_src $download_Url/src/Python-${py_version}.tar.xz -T 5
|
||||
wget -O $python_src $download_Url/src/Python-${py_version}.tar.xz -T 15
|
||||
tmp_size=$(du -b $python_src|awk '{print $1}')
|
||||
if [ $tmp_size -lt 10703460 ];then
|
||||
rm -f $python_src
|
||||
|
@ -448,8 +452,8 @@ Install_Python_Lib(){
|
|||
fi
|
||||
cd ~
|
||||
rm -rf $python_src_path
|
||||
wget -O $pyenv_path/pyenv/bin/activate $download_Url/install/pyenv/activate.panel -T 5
|
||||
wget -O $pyenv_path/pyenv/pip.txt $download_Url/install/pyenv/pip-3.7.8.txt -T 5
|
||||
wget -O $pyenv_path/pyenv/bin/activate $download_Url/install/pyenv/activate.panel -T 15
|
||||
wget -O $pyenv_path/pyenv/pip.txt $download_Url/install/pyenv/pip-${py_version}.txt -T 15
|
||||
ln -sf $pyenv_path/pyenv/bin/pip3.7 $pyenv_path/pyenv/bin/pip
|
||||
ln -sf $pyenv_path/pyenv/bin/python3.7 $pyenv_path/pyenv/bin/python
|
||||
ln -sf $pyenv_path/pyenv/bin/pip3.7 /usr/bin/btpip
|
||||
|
@ -457,7 +461,7 @@ Install_Python_Lib(){
|
|||
chmod -R 700 $pyenv_path/pyenv/bin
|
||||
$pyenv_path/pyenv/bin/pip install -U pip
|
||||
$pyenv_path/pyenv/bin/pip install -U setuptools
|
||||
$pyenv_path/pyenv/bin/pip install -U wheel==0.34.2
|
||||
$pyenv_path/pyenv/bin/pip install -U wheel==0.34.2
|
||||
$pyenv_path/pyenv/bin/pip install -r $pyenv_path/pyenv/pip.txt
|
||||
source $pyenv_path/pyenv/bin/activate
|
||||
|
||||
|
@ -488,9 +492,9 @@ Install_Bt(){
|
|||
sleep 1
|
||||
fi
|
||||
|
||||
wget -O /etc/init.d/bt https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/src/bt6.init -T 10
|
||||
wget -O /www/server/panel/install/public.sh https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/public.sh -T 10
|
||||
wget -O panel.zip https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/src/panel6.zip -T 10
|
||||
wget -O /etc/init.d/bt $_BT_REPO_URL/install/src/bt6.init -T 15
|
||||
wget -O /www/server/panel/install/public.sh $_BT_REPO_URL/install/public.sh -T 15
|
||||
wget -O panel.zip $_BT_REPO_URL/install/src/panel6.zip -T 15
|
||||
|
||||
if [ -f "${setup_path}/server/panel/data/default.db" ];then
|
||||
if [ -d "/${setup_path}/server/panel/old_data" ];then
|
||||
|
@ -540,8 +544,8 @@ Install_Bt(){
|
|||
chmod -R +x ${setup_path}/server/panel/script
|
||||
ln -sf /etc/init.d/bt /usr/bin/bt
|
||||
echo "${panelPort}" > ${setup_path}/server/panel/data/port.pl
|
||||
wget -O /etc/init.d/bt https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/src/bt7.init -T 10
|
||||
wget -O /www/server/panel/init.sh https://git.xinac.net/github/btpanel-v7.7.0/raw/branch/main/install/src/bt7.init -T 10
|
||||
wget -O /etc/init.d/bt $_BT_REPO_URL/install/src/bt7.init -T 15
|
||||
wget -O /www/server/panel/init.sh $_BT_REPO_URL/install/src/bt7.init -T 15
|
||||
wget -O /www/server/panel/data/softList.conf ${download_Url}/install/conf/softList.conf
|
||||
}
|
||||
Set_Bt_Panel(){
|
||||
|
@ -562,7 +566,7 @@ Set_Bt_Panel(){
|
|||
echo "${password}" > ${setup_path}/server/panel/default.pl
|
||||
chmod 600 ${setup_path}/server/panel/default.pl
|
||||
sleep 3
|
||||
/etc/init.d/bt restart
|
||||
/etc/init.d/bt restart
|
||||
sleep 3
|
||||
isStart=$(ps aux |grep 'BT-Panel'|grep -v grep|awk '{print $2}')
|
||||
LOCAL_CURL=$(curl 127.0.0.1:8888/login 2>&1 |grep -i html)
|
||||
|
@ -580,11 +584,12 @@ Set_Firewall(){
|
|||
if [ "${PM}" = "apt-get" ]; then
|
||||
apt-get install -y ufw
|
||||
if [ -f "/usr/sbin/ufw" ];then
|
||||
ufw allow 20/tcp
|
||||
ufw allow 21/tcp
|
||||
# ufw allow 20/tcp
|
||||
# ufw allow 21/tcp
|
||||
ufw allow 22/tcp
|
||||
ufw allow 80/tcp
|
||||
ufw allow 888/tcp
|
||||
ufw allow 443/tcp
|
||||
# ufw allow 888/tcp
|
||||
ufw allow ${panelPort}/tcp
|
||||
ufw allow ${sshPort}/tcp
|
||||
ufw allow 39000:40000/tcp
|
||||
|
@ -595,10 +600,11 @@ Set_Firewall(){
|
|||
fi
|
||||
else
|
||||
if [ -f "/etc/init.d/iptables" ];then
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
|
||||
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
|
||||
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport ${panelPort} -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport ${sshPort} -j ACCEPT
|
||||
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 39000:40000 -j ACCEPT
|
||||
|
@ -621,10 +627,11 @@ Set_Firewall(){
|
|||
systemctl enable firewalld
|
||||
systemctl start firewalld
|
||||
firewall-cmd --set-default-zone=public > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=20/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=21/tcp > /dev/null 2>&1
|
||||
# firewall-cmd --permanent --zone=public --add-port=20/tcp > /dev/null 2>&1
|
||||
# firewall-cmd --permanent --zone=public --add-port=21/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=22/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=80/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=443/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=${panelPort}/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=${sshPort}/tcp > /dev/null 2>&1
|
||||
firewall-cmd --permanent --zone=public --add-port=39000-40000/tcp > /dev/null 2>&1
|
||||
|
@ -635,13 +642,13 @@ Set_Firewall(){
|
|||
}
|
||||
Get_Ip_Address(){
|
||||
getIpAddress=""
|
||||
getIpAddress=$(curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress)
|
||||
getIpAddress=$(curl -sS --connect-timeout 15 -m 60 https://www.bt.cn/Api/getIpAddress)
|
||||
if [ -z "${getIpAddress}" ] || [ "${getIpAddress}" = "0.0.0.0" ]; then
|
||||
isHosts=$(cat /etc/hosts|grep 'www.bt.cn')
|
||||
if [ -z "${isHosts}" ];then
|
||||
echo "" >> /etc/hosts
|
||||
echo "116.213.43.206 www.bt.cn" >> /etc/hosts
|
||||
getIpAddress=$(curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress)
|
||||
getIpAddress=$(curl -sS --connect-timeout 15 -m 60 https://www.bt.cn/Api/getIpAddress)
|
||||
if [ -z "${getIpAddress}" ];then
|
||||
sed -i "/bt.cn/d" /etc/hosts
|
||||
fi
|
||||
|
@ -667,7 +674,7 @@ Get_Ip_Address(){
|
|||
LOCAL_IP=$(ip addr | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -E -v "^127\.|^255\.|^0\." | head -n 1)
|
||||
}
|
||||
Setup_Count(){
|
||||
curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/SetupCount?type=Linux\&o=$1 > /dev/null 2>&1
|
||||
curl -sS --connect-timeout 15 -m 60 https://www.bt.cn/Api/SetupCount?type=Linux\&o=$1 > /dev/null 2>&1
|
||||
if [ "$1" != "" ];then
|
||||
echo $1 > /www/server/panel/data/o.pl
|
||||
cd /www/server/panel
|
||||
|
@ -686,7 +693,7 @@ Install_Main(){
|
|||
if [ "${MEM_TOTAL}" -le "1" ];then
|
||||
Auto_Swap
|
||||
fi
|
||||
|
||||
|
||||
if [ "${PM}" = "yum" ]; then
|
||||
Install_RPM_Pack
|
||||
elif [ "${PM}" = "apt-get" ]; then
|
||||
|
@ -695,7 +702,7 @@ Install_Main(){
|
|||
|
||||
Install_Python_Lib
|
||||
Install_Bt
|
||||
|
||||
|
||||
|
||||
Set_Bt_Panel
|
||||
Service_Add
|
||||
|
@ -741,4 +748,3 @@ endTime=`date +%s`
|
|||
((outTime=($endTime-$startTime)/60))
|
||||
echo -e "Time consumed:\033[32m $outTime \033[0mMinute!"
|
||||
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue