Commit 8bd9a605 authored by jose's avatar jose

Fixed an issue where bt default could not be used correctly to get the panel...

Fixed an issue where bt default could not be used correctly to get the panel protocol after opening the panel SSL.
parent 5dfabd98
#!/bin/bash
# chkconfig: 2345 55 25
# description: bt Cloud Service
### BEGIN INIT INFO
# Provides: bt
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts bt
# Description: starts the bt
### END INIT INFO
panel_path=/www/server/panel
pidfile=$panel_path/logs/panel.pid
cd $panel_path
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=en_US.UTF-8
is64bit=`getconf LONG_BIT`
if [ -f "/usr/bin/apt-get" ];then
isDebian=`cat /etc/issue|grep Debian`
if [ "$isDebian" != "" ];then
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh
exit;
else
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh
exit;
fi
fi
if [ "$is64bit" != '64' ];then
echo "====================================="
echo "Sorry, 6.0 Does not support 32-bit systems, Use 64-bit system Please!";
exit 0;
fi
py26=$(python -V 2>&1|grep '2.6.')
if [ "$py26" != "" ];then
pythonV=python3
echo "====================================="
echo "Sorry, 6.0 Does not support Centos6.x, Please install Centos7";
exit 0;
fi
panel_start()
{
isStart=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
echo -e "Starting Bt-Panel.\c"
rm -f $pidfile
gunicorn -c runconfig.py runserver:app
port=$(cat /www/server/panel/data/port.pl)
isStart=""
n=0
while [[ "$isStart" == "" ]];
do
echo -e ".\c"
sleep 0.5
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
let n+=1
if [ $n -gt 8 ];then
break;
fi
done
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $panel_path/logs/error.log
echo '------------------------------------------------------'
echo -e "\033[31mError: aaPanel service startup failed.\033[0m"
fi
echo -e " \033[32mdone\033[0m"
else
echo "Starting aaPanel... aaPanel (pid $(echo $isStart)) already running"
CN='http://125.88.182.172:5880'
Install_Check(){
while [ "$yes" != 'yes' ] && [ "$yes" != 'n' ]
do
echo -e "----------------------------------------------------"
echo -e "Web service is alreday installed,installing aaPanel may affect existing sites."
echo -e "----------------------------------------------------"
read -p "Enter yes to force installation (yes/n): " yes;
done
if [ "$yes" == 'n' ];then
exit;
fi
}
Web_Service_Check(){
if [ -f "/etc/init.d/nginx" ]; then
nginxV=$(cat /etc/init.d/nginx|grep /www/server/nginx)
if [ "${nginxV}" = "" ];then
Install_Check
fi
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
echo -e "Starting Bt-Tasks... \c"
nohup python task.py >> /www/server/panel/logs/task.log 2>&1 &
sleep 0.2
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 /www/server/panel/logs/task.log
echo '------------------------------------------------------'
echo -e "\033[31mError: aaTask service startup failed.\033[0m"
return;
fi
echo -e " \033[32mdone\033[0m"
else
echo "Starting aaTasks... aaTasks (pid $isStart) already running"
fi
if [ -f "/etc/init.d/httpd" ]; then
httpdV=$(cat /etc/init.d/httpd|grep /www/server/apache)
if [ "${httpdV}" = "" ];then
Install_Check
fi
fi
if [ -f "/etc/init.d/mysqld" ]; then
mysqlV=$(cat /etc/init.d/mysqld|grep /www/server/mysql)
if [ "${mysqlV}" = "" ];then
Install_Check
fi
fi
}
panel_stop()
Web_Service_Check
echo "
+----------------------------------------------------------------------
| aaPanel 6.0 FOR CentOS
+----------------------------------------------------------------------
| Copyright © 2015-2099 aaPanel(http://www.aapanel.com) All rights reserved.
+----------------------------------------------------------------------
| The WebPanel URL will be http://SERVER_IP:8888 when installed.
+----------------------------------------------------------------------
"
get_node_url(){
nodes=(http://125.88.182.172:5880 http://183.235.223.101:3389 http://103.224.251.67 http://128.1.164.196);
i=1;
if [ ! -f /bin/curl ];then
if [ -f /usr/local/curl/bin/curl ];then
ln -sf /usr/local/curl/bin/curl /bin/curl
else
yum install curl -y
fi
fi
for node in ${nodes[@]};
do
start=`date +%s.%N`
result=`curl -sS --connect-timeout 3 -m 60 $node/check.txt`
if [ $result = 'True' ];then
end=`date +%s.%N`
start_s=`echo $start | cut -d '.' -f 1`
start_ns=`echo $start | cut -d '.' -f 2`
end_s=`echo $end | cut -d '.' -f 1`
end_ns=`echo $end | cut -d '.' -f 2`
time_micro=$(( (10#$end_s-10#$start_s)*1000000 + (10#$end_ns/1000 - 10#$start_ns/1000) ))
time_ms=$(($time_micro/1000))
values[$i]=$time_ms;
urls[$time_ms]=$node
i=$(($i+1))
fi
done
j=5000
for n in ${values[@]};
do
if [ $j -gt $n ];then
j=$n
fi
done
if [ $j = 5000 ];then
NODE_URL='http://download.bt.cn';
else
NODE_URL=${urls[$j]}
fi
}
echo '---------------------------------------------';
echo "Selected download node...";
get_node_url
download_Url=$NODE_URL
echo "Download node: $download_Url";
echo '---------------------------------------------';
setup_path=/www
port='8888'
if [ -f $setup_path/server/panel/data/port.pl ];then
port=`cat $setup_path/server/panel/data/port.pl`
fi
while [ "$go" != 'y' ] && [ "$go" != 'n' ]
do
read -p "Do you want to install aaPanel to the $setup_path directory now?(y/n): " go;
done
if [ "$go" == 'n' ];then
exit;
fi
path=/etc/yum.conf
isExc=`cat $path|grep httpd`
if [ "$isExc" = "" ];then
echo "exclude=httpd nginx php mysql mairadb python-psutil python2-psutil" >> $path
fi
#自动挂载Swap
autoSwap()
{
echo -e "Stopping aaTasks...\c";
pids=$(ps aux | grep 'task.py'|grep -v grep|awk '{print $2}')
arr=($pids)
for p in ${arr[@]}
do
kill -9 $p
done
echo -e " \033[32mdone\033[0m"
echo -e "Stopping aaPanel...\c";
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
for p in ${arr[@]}
do
kill -9 $p &>/dev/null
done
if [ -f $pidfile ];then
rm -f $pidfile
fi
echo -e " \033[32mdone\033[0m"
swap=`free |grep Swap|awk '{print $2}'`
if [ $swap -gt 1 ];then
echo "Swap total sizse: $swap";
return;
fi
if [ ! -d /www ];then
mkdir /www
fi
swapFile='/www/swap'
dd if=/dev/zero of=$swapFile bs=1M count=1025
mkswap -f $swapFile
swapon $swapFile
echo "$swapFile swap swap defaults 0 0" >> /etc/fstab
swap=`free |grep Swap|awk '{print $2}'`
if [ $swap -gt 1 ];then
echo "Swap total sizse: $swap";
return;
fi
sed -i "/\/www\/swap/d" /etc/fstab
rm -f $swapFile
}
autoSwap
#判断kernel-headers组件是否安装
rpm -qa | grep kernel-headers > kernel-headers.pl
kernelStatus=`cat kernel-headers.pl`
#判断华为云
huaweiLogin=`cat /etc/motd |grep 4000-955-988`
huaweiSys=`cat /etc/redhat-release | grep ' 7.'`
if [ "$kernelStatus" = "" ]; then
if [ "$huaweiLogin" != "" ] && [ "$huaweiSys" != "" ]; then
wget $download_Url/src/kernel-headers-3.10.0-514.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-514.el7.x86_64.rpm
rm -f kernel-headers-3.10.0-514.el7.x86_64.rpm
else
yum install kernel-headers -y
fi
fi
rm -f kernel-headers.pl
#try sync time from bt.cn
echo 'Synchronizing system time...'
v1=$(curl http://www.bt.cn/api/index/get_time)
date -s "$(date -d @$v1 +"%Y-%m-%d %H:%M:%S")"
yum install ntp chrony -y
systemctl restart chrony
timedatectl set-ntp 1
#rm -rf /etc/localtime
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#echo 'Synchronizing system time...'
#ntpdate 0.asia.pool.ntp.org
startTime=`date +%s`
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
for pace in python-devel python-imaging zip unzip openssl openssl-devel gcc libxml2 libxml2-devel libxslt* zlib zlib-devel libjpeg-devel libpng-devel libwebp libwebp-devel freetype freetype-devel lsof pcre pcre-devel vixie-cron crontabs icu libicu-devel c-ares;
do
yum -y install ${pace};
done
if [ -f "/usr/bin/dnf" ]; then
dnf install -y redhat-rpm-config
fi
yum install python-devel -y
py26=$(python -V 2>&1|grep '2.6.')
if [ "$py26" != "" ];then
if [ ! -f /etc/yum.repos.d/epel.repo ];then
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
fi
if [ ! -f /usr/bin/python3 ];then
yum install python34 python34-devel -y
if [ ! -f /usr/bin/python3 ];then
echo "python3.4 install error!"
exit 0;
fi
isSed=$(cat /usr/bin/yum|grep /usr/bin/python2.6)
if [ "$isSed" == "" ];then
sed -i "s#/usr/bin/python#/usr/bin/python2.6#" /usr/bin/yum
fi
#rm -f /usr/bin/python2
mv -f /usr/bin/python /usr/bin/python2_backup
ln -sf /usr/bin/python3 /usr/bin/python
fi
if [ ! -f /usr/bin/pip3 ];then
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
mv -f /usr/bin/pip /usr/bin/pip_backup
ln -sf /usr/bin/pip3.4 /usr/bin/pip
fi
fi
tmp=`python -V 2>&1|awk '{print $2}'`
pVersion=${tmp:0:3}
Install_setuptools()
{
if [ ! -f "/usr/bin/easy_install" ];then
wget -O setuptools-33.1.1.zip $download_Url/install/src/setuptools-33.1.1.zip -T 10
unzip setuptools-33.1.1.zip
rm -f setuptools-33.1.1.zip
cd setuptools-33.1.1
python setup.py install
cd ..
rm -rf setuptools-33.1.1
fi
if [ ! -f "/usr/bin/easy_install" ];then
echo '=================================================';
echo -e "\033[31msetuptools installation failed. \033[0m";
exit;
fi
}
panel_status()
Install_pip()
{
port=$(cat /www/server/panel/data/port.pl)
isStart=$(lsof -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
if [ "$isStart" != '' ];then
echo -e "\033[32maaPanel (pid $(echo $isStart)) already running\033[0m"
else
echo -e "\033[31maaPanel not running\033[0m"
fi
isStart=$(ps aux |grep 'task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "\033[32maaTask (pid $isStart) already running\033[0m"
else
echo -e "\033[31maaTask not running\033[0m"
fi
ispip=`pip -V |grep from`
if [ "$ispip" == "" ];then
if [ ! -f "/usr/bin/easy_install" ];then
Install_setuptools
fi
wget -O pip-9.0.1.tar.gz $download_Url/install/src/pip-9.0.1.tar.gz -T 10
tar xvf pip-9.0.1.tar.gz
rm -f pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
cd ..
rm -rf pip-9.0.1
fi
ispip=`pip -V |grep from`
if [ "$ispip" = "" ];then
echo '=================================================';
echo -e "\033[31m Python-pip installation failed. \033[0m";
exit;
fi
pip install -U pip
}
panel_reload()
Install_Pillow()
{
isStart=$(ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}')
if [ "$isStart" != '' ];then
echo -e "Reload aaPanel.\c";
arr=`ps aux|grep 'runserver:app'|grep -v grep|awk '{print $2}'`
for p in ${arr[@]}
do
kill -9 $p
done
rm -f $pidfile
gunicorn -c runconfig.py runserver:app
port=$(cat /www/server/panel/data/port.pl)
isStart=""
n=0
while [[ "$isStart" == "" ]];
do
echo -e ".\c"
sleep 0.5
isStart=$(lsof -n -P -i:$port|grep LISTEN|grep -v grep|awk '{print $2}'|xargs)
let n+=1
if [ $n -gt 8 ];then
break;
fi
done
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $panel_path/logs/error.log
echo '------------------------------------------------------'
echo -e "\033[31mError: aaPanel service startup failed.\033[0m"
return;
fi
echo -e " \033[32mdone\033[0m"
else
echo -e "\033[31maaPanel not running\033[0m"
panel_start
fi
isSetup=`python -m PIL 2>&1|grep package`
if [ "$isSetup" = "" ];then
isFedora = `cat /etc/redhat-release |grep Fedora`
if [ "$isFedora" != "" ];then
pip install Pillow
return;
fi
wget -O Pillow-3.2.0.zip $download_Url/install/src/Pillow-3.2.0.zip -T 10
unzip Pillow-3.2.0.zip
rm -f Pillow-3.2.0.zip
cd Pillow-3.2.0
python setup.py install
cd ..
rm -rf Pillow-3.2.0
fi
isSetup=`python -m PIL 2>&1|grep package`
if [ "$isSetup" = "" ];then
echo '=================================================';
echo -e "\033[31mPillow installation failed. \033[0m";
exit;
fi
}
install_used()
Install_psutil()
{
if [ ! -f $panel_path/aliyun.pl ];then
return;
fi
password=$(cat /dev/urandom | head -n 16 | md5sum | head -c 12)
username=$($pythonV $panel_path/tools.py panel $password)
echo "$password" > $panel_path/default.pl
rm -f $panel_path/aliyun.pl
isSetup=`python -m psutil 2>&1|grep package`
if [ "$isSetup" = "" ];then
wget -O psutil-5.2.2.tar.gz $download_Url/install/src/psutil-5.2.2.tar.gz -T 10
tar xvf psutil-5.2.2.tar.gz
rm -f psutil-5.2.2.tar.gz
cd psutil-5.2.2
python setup.py install
cd ..
rm -rf psutil-5.2.2
fi
isSetup=`python -m psutil 2>&1|grep package`
if [ "$isSetup" = "" ];then
echo '=================================================';
echo -e "\033[31mpsutil installation failed. \033[0m";
exit;
fi
}
error_logs()
Install_mysqldb()
{
tail -n 100 $panel_path/logs/error.log
isSetup=`python -m MySQLdb 2>&1|grep package`
if [ "$isSetup" = "" ];then
wget -O MySQL-python-1.2.5.zip $download_Url/install/src/MySQL-python-1.2.5.zip -T 10
unzip MySQL-python-1.2.5.zip
rm -f MySQL-python-1.2.5.zip
cd MySQL-python-1.2.5
python setup.py install
cd ..
rm -rf MySQL-python-1.2.5
fi
}
Install_chardet()
{
isSetup=`python -m chardet 2>&1|grep package`
if [ "$isSetup" = "" ];then
wget -O chardet-2.3.0.tar.gz $download_Url/install/src/chardet-2.3.0.tar.gz -T 10
tar xvf chardet-2.3.0.tar.gz
rm -f chardet-2.3.0.tar.gz
cd chardet-2.3.0
python setup.py install
cd ..
rm -rf chardet-2.3.0
fi
isSetup=`python -m chardet 2>&1|grep package`
if [ "$isSetup" = "" ];then
echo '=================================================';
echo -e "\033[31mchardet installation failed. \033[0m";
exit;
fi
}
Install_setuptools
Install_pip
if [ "${download_Url}" = "$CN" ]; then
if [ ! -d "/root/.pip" ];then
mkdir ~/.pip
fi
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
EOF
fi
isPsutil=`python -m psutil 2>&1|grep package`
if [ "$isPsutil" != "" ];then
psutil_version=`python -c 'import psutil;print psutil.__version__;' |grep '5.'`
if [ "$psutil_version" = '' ];then
pip uninstall psutil -y
fi
fi
yum install libffi-devel -y
pip install --upgrade setuptools
pip install -U pip
pip install six --upgrade --ignore-installed six
pip install itsdangerous==0.24
pip install paramiko==2.0.2
pip install flask-socketio==3.0.2
pip install python-socketio==2.1.2
pip install Werkzeug==0.15.1
for p_name in psutil chardet virtualenv Flask Flask-Session Flask-SocketIO flask-sqlalchemy Pillow gunicorn gevent-websocket requests;
do
pip install ${p_name}
done
is_gevent=$(pip list|grep gevent)
if [ "$is_gevent" = "" ];then
if [ -f /usr/bin/yum ];then
yum install python-gevent -y
else
apt install python-gevent -y
fi
fi
pip install psutil chardet virtualenv Flask Flask-Session Flask-SocketIO flask-sqlalchemy Pillow gunicorn gevent-websocket paramiko
Install_Pillow
Install_psutil
pip install gunicorn
if [ -f /www/server/mysql/bin/mysql ]; then
pip install mysql-python
Install_mysqldb
fi
Install_chardet
mkdir -p $setup_path/server/panel/logs
mkdir -p $setup_path/server/panel/vhost/apache
mkdir -p $setup_path/server/panel/vhost/nginx
mkdir -p $setup_path/server/panel/vhost/rewrite
if [ -f '/etc/init.d/bt' ];then
/etc/init.d/bt stop
fi
mkdir -p /www/server
mkdir -p /www/wwwroot
mkdir -p /www/wwwlogs
mkdir -p /www/backup/database
mkdir -p /www/backup/site
if [ ! -f "/usr/bin/unzip" ];then
#rm -f /etc/yum.repos.d/epel.repo
yum install unzip -y
fi
wget -O panel.zip $download_Url/install/src/panel6_en.zip -T 10
wget -O /etc/init.d/bt $download_Url/install/src/bt6_en.init -T 10
if [ -f "$setup_path/server/panel/data/default.db" ];then
if [ -d "/$setup_path/server/panel/old_data" ];then
rm -rf $setup_path/server/panel/old_data
fi
mkdir -p $setup_path/server/panel/old_data
mv -f $setup_path/server/panel/data/default.db $setup_path/server/panel/old_data/default.db
mv -f $setup_path/server/panel/data/system.db $setup_path/server/panel/old_data/system.db
mv -f $setup_path/server/panel/data/port.pl $setup_path/server/panel/old_data/port.pl
mv -f $setup_path/server/panel/data/admin_path.pl $setup_path/server/panel/old_data/admin_path.pl
fi
unzip -o panel.zip -d $setup_path/server/ > /dev/null
if [ -d "$setup_path/server/panel/old_data" ];then
mv -f $setup_path/server/panel/old_data/default.db $setup_path/server/panel/data/default.db
mv -f $setup_path/server/panel/old_data/system.db $setup_path/server/panel/data/system.db
mv -f $setup_path/server/panel/old_data/port.pl $setup_path/server/panel/data/port.pl
mv -f $setup_path/server/panel/old_data/admin_path.pl $setup_path/server/panel/data/admin_path.pl
if [ -d "/$setup_path/server/panel/old_data" ];then
rm -rf $setup_path/server/panel/old_data
fi
fi
rm -f panel.zip
if [ ! -f $setup_path/server/panel/tools.py ];then
echo -e "\033[31mERROR: Failed to download, please try again!\033[0m";
echo '============================================'
exit;
fi
rm -f $setup_path/server/panel/class/*.pyc
rm -f $setup_path/server/panel/*.pyc
chmod +x /etc/init.d/bt
chkconfig --add bt
chkconfig --level 2345 bt on
chmod -R 600 $setup_path/server/panel
chmod -R +x $setup_path/server/panel/script
ln -sf /etc/init.d/bt /usr/bin/bt
echo "$port" > $setup_path/server/panel/data/port.pl
/etc/init.d/bt start
password=`cat /dev/urandom | head -n 16 | md5sum | head -c 8`
sleep 1
admin_auth='/www/server/panel/data/admin_path.pl'
if [ ! -f $admin_auth ];then
auth_path=`cat /dev/urandom | head -n 16 | md5sum | head -c 8`
echo "/$auth_path" > $admin_auth
fi
auth_path=`cat $admin_auth`
cd $setup_path/server/panel/
python -m py_compile tools.py
python tools.py username
username=`python tools.py panel $password`
cd ~
echo "$password" > $setup_path/server/panel/default.pl
chmod 600 $setup_path/server/panel/default.pl
/etc/init.d/bt restart
sleep 3
isStart=`ps aux |grep 'gunicorn'|grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
echo -e "\033[31mERROR: The aaPanel service startup failed.\033[0m";
echo '============================================'
exit;
fi
if [ -f "/etc/init.d/iptables" ];then
sshPort=`cat /etc/ssh/sshd_config | grep 'Port ' | grep -oE [0-9] | tr -d '\n'`
if [ "${sshPort}" != "22" ]; then
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport $sshPort -j ACCEPT
fi
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 $port -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 39000:40000 -j ACCEPT
#iptables -I INPUT -p tcp -m state --state NEW -m udp --dport 39000:40000 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
iptables -A INPUT -s localhost -d localhost -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
service iptables save
sed -i "s#IPTABLES_MODULES=\"\"#IPTABLES_MODULES=\"ip_conntrack_netbios_ns ip_conntrack_ftp ip_nat_ftp\"#" /etc/sysconfig/iptables-config
iptables_status=`service iptables status | grep 'not running'`
if [ "${iptables_status}" == '' ];then
service iptables restart
fi
fi
if [ "${isVersion}" == '' ];then
if [ ! -f "/etc/init.d/iptables" ];then
sshPort=`cat /etc/ssh/sshd_config | grep 'Port ' | grep -oE [0-9] | tr -d '\n'`
yum install firewalld -y
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --set-default-zone=public > /dev/null 2>&1
if [ "${sshPort}" != "22" ]; then
firewall-cmd --permanent --zone=public --add-port=$sshPort/tcp > /dev/null 2>&1
fi
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=$port/tcp > /dev/null 2>&1
firewall-cmd --permanent --zone=public --add-port=39000-40000/tcp > /dev/null 2>&1
#firewall-cmd --permanent --zone=public --add-port=39000-40000/udp > /dev/null 2>&1
firewall-cmd --reload
fi
fi
pip install psutil chardet psutil virtualenv cryptography==2.1 > /dev/null 2>&1
if [ ! -d '/etc/letsencrypt' ];then
yum install epel-release -y
if [ "${country}" = "CN" ]; then
isC7=`cat /etc/redhat-release |grep ' 7.'`
if [ "${isC7}" == "" ];then
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
else
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
fi
fi
mkdir -p /var/spool/cron
if [ ! -f '/var/spool/cron/root' ];then
echo '' > /var/spool/cron/root
chmod 600 /var/spool/cron/root
fi
fi
wget -O acme_install.sh $download_Url/install/acme_install.sh
nohup bash acme_install.sh &> /dev/null &
sleep 1
rm -f acme_install.sh
address=""
address=`curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress`
if [ "$address" == '0.0.0.0' ] || [ "$address" == '' ];then
isHosts=`cat /etc/hosts|grep 'www.bt.cn'`
if [ "$isHosts" == '' ];then
echo "" >> /etc/hosts
echo "125.88.182.170 www.bt.cn" >> /etc/hosts
address=`curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress`
if [ "$address" == '' ];then
sed -i "/bt.cn/d" /etc/hosts
fi
fi
fi
ipCheck=`python -c "import re; print(re.match('^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$','$address'))"`
if [ "$ipCheck" == "None" ];then
address="SERVER_IP"
fi
if [ "$address" != "SERVER_IP" ];then
echo "$address" > $setup_path/server/panel/data/iplist.txt
fi
case "$1" in
'start')
install_used
panel_start
;;
'stop')
panel_stop
;;
'restart')
panel_stop
panel_start
;;
'reload')
panel_reload
;;
'status')
panel_status
;;
'logs')
error_logs
;;
'panel')
python $panel_path/tools.py cli $2
;;
'default')
port=$(cat $panel_path/data/port.pl)
password=$(cat $panel_path/default.pl)
if [ -f $panel_path/data/domain.conf ];then
address=$(cat $panel_path/data/domain.conf)
fi
if [ -f $panel_path/data/admin_path.pl ];then
auth_path=$(cat $panel_path/data/admin_path.pl)
fi
if [ "$address" = "" ];then
address=$(curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/getIpAddress)
fi
echo -e "=================================================================="
echo -e "\033[32maaPanel default info!\033[0m"
echo -e "=================================================================="
echo "aaPanel-URL: http://$address:$port$auth_path"
echo -e `python $panel_path/tools.py username`
echo -e "password: $password"
echo -e "\033[33mWarning:\033[0m"
echo -e "\033[33mIf you cannot access the panel, \033[0m"
echo -e "\033[33mrelease the following port (8888|888|80|443|20|21) in the security group\033[0m"
echo -e "=================================================================="
;;
*)
python $panel_path/tools.py cli $2
;;
esac
curl -sS --connect-timeout 10 -m 60 https://www.bt.cn/Api/SetupCount?type=Linux\&o=EN > /dev/null 2>&1
curl -sS --connect-timeout 10 -m 60 https://www.aapanel.com/Api/SetupCount?type=Linux > /dev/null 2>&1
echo /www > /var/bt_setupPath.conf
/etc/init.d/bt start
echo -e "=================================================================="
echo -e "\033[32mCongratulations! Installed successfully!\033[0m"
echo -e "=================================================================="
echo "aaPanel: http://$address:$port$auth_path"
echo -e "username: $username"
echo -e "password: $password"
echo -e "\033[33mWarning:\033[0m"
echo -e "\033[33mIf you cannot access the panel, \033[0m"
echo -e "\033[33mrelease the following port (8888|888|80|443|20|21) in the security group\033[0m"
echo -e "=================================================================="
endTime=`date +%s`
((outTime=($endTime-$startTime)/60))
echo -e "Time consumed:\033[32m $outTime \033[0mMinute!"
rm -f install.sh
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment