File size: 7,586 Bytes
5291d03 8f2be6e a4256da 09da1e4 1dfa3f7 5291d03 8f2be6e 5291d03 8f2be6e 5291d03 810893c 5291d03 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
#!/bin/bash
##### 一键安装File Browser + Aria2 + AriaNg #####
##### 作者:xiaoz.me #####
##### 更新时间:2020-02-27 #####
#导入环境变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin
export PATH
#CDN域名设置
if [ $1 = 'cdn' ]
then
aria2_url='https://hf-mirror.com/colaibu/ccaa/resolve/main/aria2-1.36.0-linux-gnu-64bit-build1.tar.bz2'
filebrowser_url='https://hf-mirror.com/colaibu/ccaa/resolve/main/linux-amd64-filebrowser.tar.gz'
master_url='https://hf-mirror.com/colaibu/ccaa/resolve/main/master.zip'
ccaa_web_url='https://hf-mirror.com/colaibu/ccaa/resolve/main/ccaa_web.tar.gz'
else
aria2_url='https://github.com/q3aql/aria2-static-builds/releases/download/v1.35.0/aria2-1.36.0-linux-gnu-64bit-build1.tar.bz2'
filebrowser_url='https://github.com/filebrowser/filebrowser/releases/download/v2.0.16/linux-amd64-filebrowser.tar.gz'
master_url='https://github.com/helloxz/ccaa/archive/master.zip'
ccaa_web_url='http://soft.xiaoz.org/linux/ccaa_web.tar.gz'
fi
#安装前的检查
function check(){
echo '-------------------------------------------------------------'
if [ -e "/etc/ccaa" ]
then
echo 'CCAA已经安装,若需要重新安装,请先卸载再安装!'
echo '-------------------------------------------------------------'
exit
else
echo '检测通过,即将开始安装。'
echo '-------------------------------------------------------------'
fi
}
#安装之前的准备
function setout(){
if [ -e "/usr/bin/yum" ]
then
yum -y install curl gcc make bzip2 gzip wget unzip tar
else
#更新软件,否则可能make命令无法安装
sudo apt-get update
sudo apt-get install -y curl make bzip2 gzip wget unzip sudo
fi
#创建临时目录
cd
mkdir ./ccaa_tmp
#创建用户和用户组
groupadd ccaa
useradd -M -g ccaa ccaa -s /sbin/nologin
}
#安装Aria2
function install_aria2(){
#进入临时目录
cd ./ccaa_tmp
#yum -y update
#安装aria2静态编译版本,来源于https://github.com/q3aql/aria2-static-builds/
wget -c ${aria2_url}
tar jxvf aria2-1.36.0-linux-gnu-64bit-build1.tar.bz2
cd aria2-1.36.0-linux-gnu-64bit-build1
make install
cd
}
#安装File Browser文件管理器
function install_file_browser(){
cd ./ccaa_tmp
#下载File Browser
wget ${filebrowser_url}
#解压
tar -zxvf linux-amd64-filebrowser.tar.gz
#移动位置
mv filebrowser /usr/sbin
cd
}
#处理配置文件
function dealconf(){
cd ./ccaa_tmp
#下载CCAA项目
wget ${master_url}
#解压
unzip master.zip
#复制CCAA核心目录
mv ccaa-master/ccaa_dir /etc/ccaa
#创建aria2日志文件
touch /var/log/aria2.log
#upbt增加执行权限
chmod +x /etc/ccaa/upbt.sh
chmod +x ccaa-master/ccaa
cp ccaa-master/ccaa /usr/sbin
cd
}
#自动放行端口
function chk_firewall(){
if [ -e "/etc/sysconfig/iptables" ]
then
iptables -I INPUT -p tcp --dport 6080 -j ACCEPT
iptables -I INPUT -p tcp --dport 6081 -j ACCEPT
iptables -I INPUT -p tcp --dport 6800 -j ACCEPT
iptables -I INPUT -p tcp --dport 6998 -j ACCEPT
iptables -I INPUT -p tcp --dport 51413 -j ACCEPT
service iptables save
service iptables restart
elif [ -e "/etc/firewalld/zones/public.xml" ]
then
firewall-cmd --zone=public --add-port=6080/tcp --permanent
firewall-cmd --zone=public --add-port=6081/tcp --permanent
firewall-cmd --zone=public --add-port=6800/tcp --permanent
firewall-cmd --zone=public --add-port=6998/tcp --permanent
firewall-cmd --zone=public --add-port=51413/tcp --permanent
firewall-cmd --reload
elif [ -e "/etc/ufw/before.rules" ]
then
sudo ufw allow 6080/tcp
sudo ufw allow 6081/tcp
sudo ufw allow 6800/tcp
sudo ufw allow 6998/tcp
sudo ufw allow 51413/tcp
fi
}
#删除端口
function del_post() {
if [ -e "/etc/sysconfig/iptables" ]
then
sed -i '/^.*6080.*/'d /etc/sysconfig/iptables
sed -i '/^.*6081.*/'d /etc/sysconfig/iptables
sed -i '/^.*6800.*/'d /etc/sysconfig/iptables
sed -i '/^.*6998.*/'d /etc/sysconfig/iptables
sed -i '/^.*51413.*/'d /etc/sysconfig/iptables
service iptables save
service iptables restart
elif [ -e "/etc/firewalld/zones/public.xml" ]
then
firewall-cmd --zone=public --remove-port=6080/tcp --permanent
firewall-cmd --zone=public --remove-port=6081/tcp --permanent
firewall-cmd --zone=public --remove-port=6800/tcp --permanent
firewall-cmd --zone=public --remove-port=6998/tcp --permanent
firewall-cmd --zone=public --remove-port=51413/tcp --permanent
firewall-cmd --reload
elif [ -e "/etc/ufw/before.rules" ]
then
sudo ufw delete 6080/tcp
sudo ufw delete 6081/tcp
sudo ufw delete 6800/tcp
sudo ufw delete 6998/tcp
sudo ufw delete 51413/tcp
fi
}
#添加服务
function add_service() {
if [ -d "/etc/systemd/system" ]
then
cp /etc/ccaa/services/* /etc/systemd/system
systemctl daemon-reload
fi
}
#设置账号密码
function setting(){
cd
cd ./ccaa_tmp
echo '-------------------------------------------------------------'
read -p "设置下载路径(请填写绝对地址,默认/data/ccaaDown):" downpath
read -p "Aria2 RPC 密钥:(字母或数字组合,不要含有特殊字符):" secret
#如果Aria2密钥为空
while [ -z "${secret}" ]
do
read -p "Aria2 RPC 密钥:(字母或数字组合,不要含有特殊字符):" secret
done
#如果下载路径为空,设置默认下载路径
if [ -z "${downpath}" ]
then
downpath='/data/ccaaDown'
fi
#获取ip
osip=$(curl ipv4.ip.sb)
#执行替换操作
mkdir -p ${downpath}
sed -i "s%dir=%dir=${downpath}%g" /etc/ccaa/aria2.conf
sed -i "s/rpc-secret=/rpc-secret=${secret}/g" /etc/ccaa/aria2.conf
#替换filebrowser读取路径
sed -i "s%ccaaDown%${downpath}%g" /etc/ccaa/config.json
#替换AriaNg服务器链接
sed -i "s/server_ip/${osip}/g" /etc/ccaa/AriaNg/index.html
#更新tracker
bash /etc/ccaa/upbt.sh
#安装AriaNg
wget ${ccaa_web_url}
tar -zxvf ccaa_web.tar.gz
cp ccaa_web /usr/sbin/
chmod +x /usr/sbin/ccaa_web
#启动服务
nohup sudo -u ccaa aria2c --conf-path=/etc/ccaa/aria2.conf > /var/log/aria2.log 2>&1 &
#nohup caddy -conf="/etc/ccaa/caddy.conf" > /etc/ccaa/caddy.log 2>&1 &
nohup sudo -u ccaa /usr/sbin/ccaa_web > /var/log/ccaa_web.log 2>&1 &
#运行filebrowser
nohup sudo -u ccaa filebrowser -c /etc/ccaa/config.json > /var/log/fbrun.log 2>&1 &
#重置权限
chown -R ccaa:ccaa /etc/ccaa/
chown -R ccaa:ccaa ${downpath}
#注册服务
add_service
echo '-------------------------------------------------------------'
echo "大功告成,请访问: http://${osip}:6080/"
echo 'File Browser 用户名:ccaa'
echo 'File Browser 密码:admin'
echo 'Aria2 RPC 密钥:' ${secret}
echo '帮助文档: https://dwz.ovh/ccaa (必看)'
echo '-------------------------------------------------------------'
}
#清理工作
function cleanup(){
cd
rm -rf ccaa_tmp
#rm -rf *.conf
#rm -rf init
}
#卸载
function uninstall(){
wget -O ccaa-uninstall.sh https://hf-mirror.com/colaibu/ccaa/resolve/main/uninstall.sh
bash ccaa-uninstall.sh
}
#选择安装方式
echo "------------------------------------------------"
echo "Linux + File Browser + Aria2 + AriaNg一键安装脚本(CCAA)"
echo "1) 安装CCAA"
echo "2) 卸载CCAA"
echo "3) 更新bt-tracker"
echo "q) 退出!"
read -p ":" istype
case $istype in
1)
check
setout
chk_firewall
install_aria2 && \
install_file_browser && \
dealconf && \
setting && \
cleanup
;;
2)
uninstall
;;
3)
bash /etc/ccaa/upbt.sh
;;
q)
exit
;;
*) echo '参数错误!'
esac
|