Files
MIXBOX-ARCHIVE/apps/aria2/scripts/aria2.sh

132 lines
3.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/sh
source /etc/mixbox/bin/base
eval `mbdb export aria2`
port=6800
WEBDIR=${mbroot}/apps/${appname}/web
[ -z "${port}" ] && port=6800
[ -z "$path" ] && path="$mbdisk/下载"
aria2url=http://$lanip/backup/log/${appname}
binname=aria2c
open_ports() {
# 添加bt下载和DHT监听端口
open_port 6881:6999 tcp
}
set_config() {
logsh "$service" "加载${appname}配置..."
[ ! -f /etc/aria2.session ] && touch /etc/aria2.session
[ ! -z "${port}" ] && sed -i "s/^.*rpc-listen-port.*$/rpc-listen-port=${port}/" ${mbroot}/apps/${appname}/config/${appname}.conf
if [ ! -z "$token" ]; then
sed -i "s/^.*rpc-secret.*$/rpc-secret=$token/" ${mbroot}/apps/${appname}/config/${appname}.conf
else
sed -i "s/^.*rpc-secret.*$/#rpc-secret=/" ${mbroot}/apps/${appname}/config/${appname}.conf
fi
sed -i "s#dir.*#dir=$path#" ${mbroot}/apps/${appname}/config/${appname}.conf
[ ! -d "$path" ] && mkdir -p $path
# DHT 缓存目录配置
if [ ! -d "${path}/.aria2" ]; then
mkdir -p "${path}/.aria2"
# IPV6默认没有开可以不用配置
sed -i "s#.*dht-file-path.*#dht-file-path=${path}/.aria2/dht.dat#" ${mbroot}/apps/${appname}/config/${appname}.conf
sed -i "s#.*dht-file-path6.*#dht-file-path6=${path}/.aria2/dht6.dat#" ${mbroot}/apps/${appname}/config/${appname}.conf
fi
# 自动更新bt-tracker
list1="$(wgetlist https://cdn.jsdelivr.net/gh/ngosang/trackerslist/trackers_all.txt)"
list2="$(wgetlist https://trackerslist.com/all.txt)"
list="$(echo -e "${list1}\n${list2}" | sort -u | awk NF | sed ":a;N;s/\n/,/g;ta")"
if [ ! -z "${list}" ]; then
sed -i "s#.*bt-tracker.*#bt-tracker=${list}#" ${mbroot}/apps/${appname}/config/${appname}.conf
logsh "$service" "更新bt-tracker"
fi
#R3加载库文件
[ "$xq" == "R3" -o "$xq" == "R1CM" ] && export LD_LIBRARY_PATH=${mbroot}/apps/${appname}/lib:/usr/lib:/lib
if [ ! -d /tmp/syslogbackup/${appname} ] && [ -n "$xq" ]; then
logsh "$service" "生成${appname}本地web页面"
mkdir -p /tmp/syslogbackup &> /dev/null
ln -s $WEBDIR/AriaNG /tmp/syslogbackup/${appname} > /dev/null 2>&1
fi
#添加定时重启任务
cru a ${appname} "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
}
start () {
result=$(ps | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
if [ "$result" != '0' ];then
logsh "$service" "${appname}已经在运行!"
exit 1
fi
logsh "$service" "正在启动${appname}服务... "
set_config
open_port
write_firewall_start
if [ ! -f ${mbroot}/apps/${appname}/bin/${appname} ]; then
bincheck ${binname}
[ $? -eq 0 ] && ln -sf $(which $binname) ${mbroot}/apps/${appname}/bin/${appname}
fi
daemon ${mbroot}/apps/${appname}/bin/${appname} --conf-path=${mbroot}/apps/${appname}/config/${appname}.conf -D -l ${mbroot}/var/log/${appname}.log
if [ $? -ne 0 ]; then
logsh "$service" "启动${appname}服务失败!"
else
logsh "$service" "启动${appname}服务完成!"
logsh "$service" "访问[$aria2url]管理服务"
[ -z "$token" ] && tokentext="" || tokentext=token:"$token"@
logsh "$service" "jsonrpc地址:http://"$tokentext""$lanip":"${port}"/jsonrpc"
fi
}
stop () {
logsh "$service" "正在停止${appname}服务... "
close_port
remove_firewall_start
killall -9 ${appname} &> /dev/null
destroy
}
destroy() {
if [ "$enable" == '0' ]; then
[ -d /tmp/syslogbackup/${appname} ] && rm -rf /tmp/syslogbackup/${appname}
cru d ${appname}
fi
}
status() {
result=$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
if [ "$result" == '0' ]; then
status="未运行|0"
else
status="运行端口号: ${port}|1"
fi
mbdb set $appname.main.status="$status"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
reload) close_port && open_port ;;
status) status ;;
esac