一、准备
- Nextcloud后台安装ocDownload
- 系统安装aria2(编译或者yum|apt都行)
二、配置
1.Aria2c
vim /etc/aria2c.conf
按一下内容配置,具体路径替换为自己的
#用户名
#rpc-user=mxtech
#密码
#rpc-passwd=passwd
#设置加密的密钥
#rpc-secret=secret
#允许rpc
enable-rpc=true
#关闭IPv6 RPC, 如果不使用最好关闭,不然容易报错
disable-ipv6=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#是否启用https加密,启用之后要设置公钥,私钥的文件路径
#rpc-secure=true
#启用加密设置公钥
#rpc-certificate=/cert.cer
#启用加密设置私钥
#rpc-private-key=/key.key
#允许外部访问,false的话只监听本地端口
rpc-listen-all=false
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#断点续传
continue=true
#保存历史,true时生成的.aria2会保留,false时下载完成后自动删除
force-save=true
#save-session-interval=60
# 这两个是记录和读取下载历史用的,断电和重启时保证下载任务不会丢失
# 如果有时aria2不能启动,清空这里面的内容就行了
input-file=/mnt/aria2c-data/aria2.session
save-session=/mnt/aria2c-data/aria2.session
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置
dir=/tmp
#dir可不配置,ocDownload会自动下载到当前登录用户下的Download文件夹
#下载自动删除同名.aria2文件,当下载完后aria2会给脚本传 3 个参数 $1 $2 $3 分别为 gid、文件数量、文件路径
on-download-complete=/home/www/aria2/autorm.sh
on-bt-download-complete=/home/www/aria2/autorm.sh
#Log
log-level=info
log=/mnt/aria2c-data/aria2c.log
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=none
#不进行证书校验
check-certificate=false
#BT
#enable-dht=true
autorm.sh内容为:
#!/bin/sh
rm -rf $3.aria2
以上sh主要用于下载完成后自动删除创建的同名.aria2文件,
如果不使用脚本删除,可将force-save改为false,下载完成后自动清除,但是无法保存下载历史
创建管理脚本vim /etc/init.d/aria2c
,路径和运行身份按需修改
#!/bin/bash
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
####Date:2019-7-27
####Writed by zmmfly
ARIA2C_PATH=/usr/bin/aria2c
ARIA2C_CONF_PATH=/etc/aria2/aria2c.conf
RUN_USER="www"
start()
{
echo -n "Starting Aria2c..."
sudo -u "$RUN_USER" "$ARIA2C_PATH" --conf-path="$ARIA2C_CONF_PATH" -D
}
stop()
{
is_run
if [ $? = 1 ]; then
echo -n "Shutting down aria2c..."
ps -ef | grep -v bash | grep -v systemctl | grep -v grep | grep aria2c | awk '{print $2}' | xargs kill
echo -ne "\e[33mWaiting stop...\e[0m"
while [ 1 ]; do
is_run
if [ $? = 0 ]; then
break
fi
done
is_run
if [ $? = 0 ]; then
echo -e "\e[32m[done]\e[0m"
fi
else
echo -e "\e[31mAria2c is not running\e[0m"
fi
}
get_pid()
{
echo $( ps -ef | grep aria2c | grep -v bash | grep -v systemctl | grep -v grep | awk '{print $2}')
}
is_run()
{
if [[ $( ps -ef | grep aria2c | grep -v bash | grep -v systemctl | grep -v grep | awk '{print $2}') ]] ; then
return 1
else
return 0
fi
}
status()
{
is_run
if [[ $? = 1 ]] ; then
echo -e "\e[32mAria2c is running\e[0m"
else
echo -e "\e[33mAria2c not running\e[0m"
fi
}
case "$1" in
start )
#echo $(ps -ef | grep aria2c)
is_run
if [ $? = 1 ] ; then
echo -e "\e[33mAria2c is already running...\e[0m"
else
start
is_run
if [ $? = 1 ]; then
echo -e "\e[32m[done]\e[0m"
fi
fi
;;
stop )
stop
;;
restart )
stop
start
;;
status )
status
;;
*)
echo "Usage: $PROG {start|stop|restart|status|help}"
cat <<EOF
start - start aria2c
stop - stop aria2c
restart - gracefully restart aria2c
status - show aria2c running status
help - this screen
EOF
;;
esac
exit
保存后update-rc.d aria2c defaults
创建服务, 然后systemctl start aria2c
启动aria2c
PS:第一次写shell,和php,c的感觉完全不同
三、创建下载任务
从Nextcloud工具栏进入ocDownload
输入链接创建任务
下载完成后文件即保存在Nextcloud用户根路径Download文件夹中。
==============END============
Aria2c配置部分参考:https://www.orgleaf.com/2743.html
转载请注明:神奇海域 » Nextcloud离线下载配置步骤