Add files via upload
This commit is contained in:
parent
69d16b40c0
commit
f8f704a109
49
web/index.php
Normal file
49
web/index.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
error_reporting(0);
|
||||
date_default_timezone_set("PRC");
|
||||
header('Content-Type: application/json; charset=UTF-8');
|
||||
define('AES_KEY','L6DYHZ3NEb2QUL6D');
|
||||
|
||||
$url = $_SERVER['REQUEST_URI'];
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
if(strpos($url, '/common/timestamp') !== false && $method=='POST'){
|
||||
$param = parse_input();
|
||||
$data = ['now'=>time(), 'rnd'=>$param['rnd']];
|
||||
echo generate_output($data);
|
||||
}
|
||||
elseif(strpos($url, '/auth') !== false && $method=='POST'){
|
||||
$param = parse_input();
|
||||
//$data = ['nodes'=>10000, 'machine_code'=>$param['machine_code'], 'end_at'=>time()+3600*24*365];
|
||||
$data = ['nodes'=>99999, 'machine_code'=>$param['machine_code'], 'end_at'=>time()+3600*24*365*10];
|
||||
echo generate_output($data);
|
||||
}
|
||||
elseif(strpos($url, '/common/datetime') !== false && $method=='GET'){
|
||||
return date('Y-m-d H:i:s');
|
||||
}
|
||||
elseif(strpos($url, '/master/upgrades') !== false){
|
||||
$version_data = file_get_contents('version.json');
|
||||
if(!$version_data) exit(json_encode(['code'=>-1, 'data'=>[], 'ip'=>$_SERVER['REMOTE_ADDR'], 'msg'=>'版本信息文件不存在']));
|
||||
$version_info = json_decode($version_data, true);
|
||||
if(!$version_info) exit(json_encode(['code'=>-1, 'data'=>[], 'ip'=>$_SERVER['REMOTE_ADDR'], 'msg'=>'解析版本信息文件失败']));
|
||||
$data = ['code'=>0, 'count'=>1, 'data'=>[$version_info], 'ip'=>$_SERVER['REMOTE_ADDR']];
|
||||
echo json_encode($data);
|
||||
}
|
||||
|
||||
|
||||
function parse_input(){
|
||||
$post = file_get_contents('php://input');
|
||||
$param = json_decode(text_decrypt($post), true);
|
||||
return $param;
|
||||
}
|
||||
function generate_output($data){
|
||||
$cipher = text_encrypt(json_encode($data));
|
||||
$data = ['code'=>0, 'data'=>$cipher, 'msg'=>''];
|
||||
return json_encode($data);
|
||||
}
|
||||
function text_encrypt($data){
|
||||
return openssl_encrypt($data, 'aes-128-cbc', AES_KEY, 0, AES_KEY);
|
||||
}
|
||||
function text_decrypt($data){
|
||||
return openssl_decrypt($data, 'aes-128-cbc', AES_KEY, 0, AES_KEY);
|
||||
}
|
237
web/master.sh
Normal file
237
web/master.sh
Normal file
@ -0,0 +1,237 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
#判断系统版本
|
||||
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
|
||||
}
|
||||
|
||||
# 安装依赖
|
||||
install_depend() {
|
||||
if check_sys sysRelease ubuntu;then
|
||||
apt-get update
|
||||
apt-get -y install wget python-minimal
|
||||
elif check_sys sysRelease centos;then
|
||||
yum install -y wget python
|
||||
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`
|
||||
}
|
||||
|
||||
download(){
|
||||
local url1=$1
|
||||
local url2=$2
|
||||
local filename=$3
|
||||
|
||||
# 检查文件是否存在
|
||||
# if [[ -f $filename ]]; then
|
||||
# echo "$filename 文件已经存在,忽略"
|
||||
# return
|
||||
# fi
|
||||
|
||||
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\n$url2"
|
||||
if [[ $speed2 -gt $speed1 ]]; then
|
||||
url="$url2\n$url1"
|
||||
fi
|
||||
echo -e $url | while read l;do
|
||||
echo "using url:"$l
|
||||
wget --dns-timeout=5 --connect-timeout=5 --read-timeout=10 --tries=2 "$l" -O $filename && break
|
||||
done
|
||||
|
||||
|
||||
}
|
||||
|
||||
sync_time(){
|
||||
echo "start to sync time and add sync command to cronjob..."
|
||||
|
||||
if check_sys sysRelease ubuntu || check_sys sysRelease debian;then
|
||||
apt-get -y update
|
||||
apt-get -y install ntpdate wget
|
||||
/usr/sbin/ntpdate -u pool.ntp.org || true
|
||||
! grep -q "/usr/sbin/ntpdate -u pool.ntp.org" /var/spool/cron/crontabs/root > /dev/null 2>&1 && echo '*/10 * * * * /usr/sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1 || (date_str=`curl update.cdnfly.cn/common/datetime` && timedatectl set-ntp false && echo $date_str && timedatectl set-time "$date_str" )' >> /var/spool/cron/crontabs/root
|
||||
service cron restart
|
||||
elif check_sys sysRelease centos; then
|
||||
yum -y install ntpdate wget
|
||||
/usr/sbin/ntpdate -u pool.ntp.org || true
|
||||
! grep -q "/usr/sbin/ntpdate -u pool.ntp.org" /var/spool/cron/root > /dev/null 2>&1 && echo '*/10 * * * * /usr/sbin/ntpdate -u pool.ntp.org > /dev/null 2>&1 || (date_str=`curl update.cdnfly.cn/common/datetime` && timedatectl set-ntp false && echo $date_str && timedatectl set-time "$date_str" )' >> /var/spool/cron/root
|
||||
service crond restart
|
||||
fi
|
||||
|
||||
# 时区
|
||||
rm -f /etc/localtime
|
||||
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
if /sbin/hwclock -w;then
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
}
|
||||
|
||||
need_sys() {
|
||||
SYS_VER=`python -c "import platform;import re;sys_ver = platform.platform();sys_ver = re.sub(r'.*-with-(.*)-.*','\g<1>',sys_ver);print sys_ver;"`
|
||||
if [[ $SYS_VER =~ "Ubuntu-16.04" ]];then
|
||||
echo "$sys_ver"
|
||||
elif [[ $SYS_VER =~ "centos-7" ]]; then
|
||||
SYS_VER="centos-7"
|
||||
echo $SYS_VER
|
||||
else
|
||||
echo "目前只支持ubuntu-16.04和Centos-7"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
install_depend
|
||||
need_sys
|
||||
sync_time
|
||||
|
||||
# 解析命令行参数
|
||||
TEMP=`getopt -o h --long help,ver:,no-mysql,only-mysql,no-es,only-es,master-ip:,es-ip:,es-dir:,es-pwd:,mysql-ip:,ignore-ntp -- "$@"`
|
||||
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
|
||||
eval set -- "$TEMP"
|
||||
|
||||
while true ; do
|
||||
case "$1" in
|
||||
-h|--help) help ; exit 1 ;;
|
||||
--ver) VER=$2 ; shift 2 ;;
|
||||
--) shift ; break ;;
|
||||
*) break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ $VER == "" ]]; then
|
||||
# 获取最新版本
|
||||
echo "获取最新版..."
|
||||
latest_version=`curl -s 'https://github.com/LoveesYe/cdnflydadao/web/upgrades?latest=1' | grep -Po 'v\d+\.\d+.\d+' || true`
|
||||
if [[ "$latest_version" == "" ]]; then
|
||||
echo "获取最新版失败,请先登录官网填入主控IP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "最新版本为$latest_version"
|
||||
dir_name="cdnfly-master-$latest_version"
|
||||
tar_gz_name="$dir_name-$(get_sys_ver).tar.gz"
|
||||
|
||||
else
|
||||
# 安装指定版本
|
||||
if [[ ! `echo "$VER" | grep -P "^v\d+\.\d+\.\d+$"` ]]; then
|
||||
echo "指定的版本格式不正确,应该类似为v4.0.1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dir_name="cdnfly-master-$VER"
|
||||
tar_gz_name="$dir_name-$(get_sys_ver).tar.gz"
|
||||
echo "安装指定版本$VER"
|
||||
fi
|
||||
|
||||
cd /opt/
|
||||
download "https://github.com/LoveesYe/cdnflydadao/master/$tar_gz_name" "https://github.com/LoveesYe/cdnflydadao/master/$tar_gz_name" "$tar_gz_name"
|
||||
|
||||
tar xf $tar_gz_name
|
||||
rm -rf cdnfly
|
||||
mv $dir_name cdnfly
|
||||
|
||||
# 开始安装
|
||||
cd /opt/cdnfly/master
|
||||
chmod +x install.sh
|
||||
./install.sh $@
|
||||
|
||||
if [ -f /opt/cdnfly/master/view/upgrade.so ]; then
|
||||
sed -i "s/https:\/\/update.cdnfly.cn\//http:\/\/auth.cdnfly.cn\/\/\/\//g" /opt/cdnfly/master/view/upgrade.so
|
||||
supervisorctl -c /opt/cdnfly/master/conf/supervisord.conf reload
|
||||
fi
|
||||
|
30
web/update.php
Normal file
30
web/update.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
// 更新cdnfly最新版本信息
|
||||
|
||||
error_reporting(0);
|
||||
header('Content-Type: text/html; charset=UTF-8');
|
||||
|
||||
$url = 'https://update.cdnfly.cn/master/upgrades?version_num=';
|
||||
$data = send_request($url);
|
||||
$arr = json_decode($data, true);
|
||||
if(!$arr)exit('获取cdnfly版本信息失败,json解析失败');
|
||||
if($arr['code']!=0 || !$arr['data'] || count($arr['data'])==0)exit('获取cdnfly版本信息失败:'.$data);
|
||||
|
||||
$info = $arr['data'][0];
|
||||
if(file_put_contents('version.json', json_encode($info))){
|
||||
exit('保存cdnfly版本信息成功!');
|
||||
}else{
|
||||
exit('保存cdnfly版本信息失败,可能无文件写入权限');
|
||||
}
|
||||
|
||||
|
||||
function send_request($url){
|
||||
$ch=curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
$res=curl_exec($ch);
|
||||
curl_close($ch);
|
||||
return $res;
|
||||
}
|
1
web/upgrades.json
Normal file
1
web/upgrades.json
Normal file
File diff suppressed because one or more lines are too long
0
web/upgrades.php
Normal file
0
web/upgrades.php
Normal file
1
web/version.json
Normal file
1
web/version.json
Normal file
@ -0,0 +1 @@
|
||||
{"agent_ver":"50115","create_at":null,"create_at2":"2022-06-29 15:52:59","enable":1,"id":90,"is_test":0,"update_log":"1. \u4fee\u590d\u5957\u9910\u5347\u7ea7\u51fa\u73b0\u7684500\u9519\u8bef\n2. \u4fee\u590d\u7981\u7528\u8282\u70b9\u65f6\u5076\u5c14\u8d85\u65f6\u7684\u95ee\u9898\n3. \u4fee\u590d\u67d0\u79cd\u60c5\u51b5\u6e05\u7f13\u5b58\u51fa\u73b0\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650\u7684\u95ee\u9898\n4. \u4fee\u590d\u67e5\u770b\u8282\u70b9\u76d1\u63a7\u65e5\u5fd7\u6162\u7684\u95ee\u9898\n5. \u53ef\u7f16\u8f91\u5de6\u4fa7\u7528\u6237\u83dc\u5355\u663e\u793a\uff0c\u5728\u4e3b\u63a7\u7684\/opt\/cdnfly\/master\/panel\/console\/user_menu.json ","url":"https:\/\/dl2.cdnfly.cn\/cdnfly\/upgrade_script\/master\/50111.sh","version_name":"v5.1.11","version_num":50111}
|
Loading…
Reference in New Issue
Block a user