咱们继续接着昨天的文章来完成剩下的部分,昨天写了下如何把GoogleDrive网盘挂载到VPS上面,如果你还没有将你的网盘挂载上去的话,可以先参考一下这篇文章:
有人可能觉得很奇怪,既然网盘都已经挂载到VPS上面了,那我Aria2下载资源的时候直接把下载目录指定到我们的挂载目录不就行了吗?为什么要多此一举先把资源下载到本地,然后再从本地上传到GoogleDrive?
这里容我废话两句,解释下为什么要这么做。
正所谓实践出真理,如果直接把下载目录指定到挂载目录,你会发现由于Google的API太辣鸡,会出现各种莫名其妙的错误,比如:文件无法写入、Aria2下载没速度、Aria2卡死、保存到GooglrDrive的文件不完整等等。无论你是用什么方法挂载的GoogleDrive都会是这种情况,不信可以自己试试。
这里说白了就是Google的API不能支持文件的标准输入与输出。再通俗点讲就是Google的API不能正常处理这种一边下载一边上传的需求。那既然不能同时处理下载与上传的需求,那我们就只好把下载和上传这两个行为分开来执行了。
思路很简单!Aria2有一个参数叫on-download-complete,这个参数的作用是当Aria2每下载完成一个任务后可以自动执行一次指定路径的脚本文件。那写个脚本执行一下上传这个动作不就OJBK了嘛?
果不其然我在网上正好找到一个别人已经写好的脚本:http://www.hostloc.com/thread-421797-1-1.html
OJBK,话不多说,直接动手试试看~
装依赖和组件:
yum -y install wget screen unzip gcc gcc-c++ openssl-devel
安装Aria2(CentOS6要升级GCC,7可以直接装):
cd /root wget https://github.com/aria2/aria2/releases/download/release-1.33.1/aria2-1.33.1.tar.gz tar xzvf aria2-1.33.1.tar.gz cd aria2-1.33.1 ./configure make make install
Aria2安装好后,我们在root目录下新建一个脚本文件,命名为autoupload.sh:
vi /root/autoupload.sh
写入:
#!/bin/bash path=$3 downloadpath='/root/downloads' if [ $2 -eq 0 ] then exit 0 fi while true; do filepath=$path path=${path%/*}; if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ] then rclone move "$filepath" g: exit 0 elif [ "$path" = "$downloadpath" ] then mv "$filepath"/ /lala/gdrive/"${filepath##*/}"/ exit 0 fi done
需要修改的地方如图所示:
给脚本执行权限:
chmod +x autoupload.sh
现在我们就可以启动aria2了:
aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all --rpc-secret=lala --on-download-complete=/root/autoupload.sh -c --dir /root/downloads -D
注:
1、–rpc-secret=后面的值务必修改复杂一点,这是你的rpc连接密码!如果不设置或这个值设置的很容易被人猜到,会出现严重安全问题。
2、–on-download-complete=后面要指定执行脚本的路径,如果你的脚本路径不一样这里要做相应更改。
3、–dir后面的下载路径务必要和之前脚本内的下载路径一致。
现在来安装AriaNG。
先要安装一个Nginx:
vi /etc/yum.repos.d/nginx.repo
写入:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
用yum安装:
yum -y install nginx
进入到Nginx的默认站点目录:
cd /usr/share/nginx/html
下载AriaNG并解压:
wget https://github.com/mayswind/AriaNg/releases/download/0.4.0/aria-ng-0.4.0.zip unzip aria-ng-0.4.0.zip
注意有一个同名文件直接按y覆盖就行:
启动Nginx:
systemctl start nginx
现在打开你的VPS公网IP就能访问到AriaNG了。先填写rpc连接密码,让AriaNG和Aria2连接上:
连接成功后,如图所示:
现在到了一个很重要的环节了,请一定要把如图所示的“最小做种时间”修改成0:
这里稍微解释一下为什么要这么做:
并不是因为我们“毒瘤”只负责下载不负责上传,而是因为Aria2判断每个BT下载完成的条件是:“下载完成+最小分享率达到”。很多时候我们下载早就完成了,但是上传速度上不去,导致最小分享率一直达不到,这样Aria2就不会把这个任务标记为“已完成”。如果这个任务一直不完成的话,之前指定的脚本是不会执行的。所以这里是没有办法的办法,只能“毒瘤”一回了2333
OK,再让我们来安装一个filebrowser,用来管理我们的网盘文件和实现在线播放视频等需求。
下载并解压filebrowser:
cd /root wget https://github.com/filebrowser/filebrowser/releases/download/v1.7.0/linux-amd64-filebrowser.tar.gz tar -zxvf linux-amd64-filebrowser.tar.gz
写个服务,让filebrowser开机启动。
先复制可执行文件到/usr/bin:
cp /root/filebrowser /usr/bin/filebrowser
新建一个服务文件:
vi /usr/lib/systemd/system/filebrowser.service
写入:
[Unit] Description=filebrowser [Service] User=root ExecStart=/usr/bin/filebrowser --port 23333 Restart=on-abort [Install] WantedBy=multi-user.target
管理命令:
systemctl enable filebrowser systemctl start filebrowser systemctl status filebrowser systemctl restart filebrowser systemctl stop filebrowser
注:1是开机启动,2是现在运行,3是查看运行状态,4是重启,5是停止运行。
推荐用上述的服务方式来运行并管理filebrowser,如果你不想这样子运行filebrowser,也可以直接用screen来运行:
screen -dmS filebrowser ./filebrowser --port 23333
这样我们打开VPS的公网IP+端口23333就可以访问到filebrowser了。
默认的管理员账号密码都是admin,登录进去的第一件事就是把密码修改掉。接着我们要改变一下目录指定的路径:
然后我们回到AriaNG内,尝试下载一部小姐姐资源,可以看到下载完成后不会进行上传,而是直接归类到了“已完成”:
这里我们要稍等片刻,等脚本把这个文件上传到GoogleDrive内,这里的速度取决于你的VPS带宽。上传完成后,我们在filebrowser内刷新一下,可以看到之前下载的文件了:
我们登录到GoogleDrive内也可以看到文件是完整保存进去了的(资源很敏感,打了马赛克2333):
至此,一套完整的用Aria2离线下载并把文件保存到GoogleDirve的方案就大功告成了~
写在最后:
有几个注意事项这里务必提一下:
1、首先这个方案有一个先决条件就是你的VPS要带宽够大,并且可以随便跑。否则的话建议放弃。
2、VPS与Google网盘的上传速度要够快,否则我认为你不如去花点钱开个115年费会员。
3、尽量别下载正规影视资源,容易踩到蜜罐被封VPS,当然你的VPS是抗投诉的话那当我没说。
沙发
dalao,aria2如何设置开机自启?
参考:https://lala.im/2455.html
Debian7不能自动移动,怎么解决?
启动Nginx命令systemctl start nginx时,提示Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
你改过nginx的配置文件,并且改错了,导致nginx无法启动。
请问是一定要先在本地下载完才能上传到gd吗,如果是这样那为什么要上传到gd呢?
你本地的硬盘有gd大吗。。。gd无限容量的。。。
可惜我在tb上买的账号已经被封了
博主有没有用Transmission下载再自动上传的办法呢,因为我平常PT下载用得多
把这个脚本写个crontab,比如每隔1天执行一次就可以满足你说的自动上传需求了。
小白一枚呀,只会一行一行打命令,能详细说下吗谢谢
一直在网盘里没有文件转移过来
通过filebrowser复制可以到gd,但是移动就不行了,显示网络错误,下载完成不能自动转移
dalao aria2 bt下载无速度
Aria2下BT开始是有点慢的,多等等看有速度没。
建议直接传种子文件上去下载,不要用磁力链接。
已解决 添加了tracker有速度了
开启脚本,下载文件自动上传后,sh CPU一直占用100%
莫不是小鸡的CPU性能太差= =
同样的情况,都是在上传完成之后出现,每次都要手动干掉sh进程
为何按照教程配置,启动了nginx之后,浏览器地址栏内输入vps的ip之后没办法打开图示的网页啊
看看防火墙关了没:systemctl stop firewalld.service
搞定了,手动在防火墙里开启80和23333端口就能访问了,感谢老哥
我遇到一个奇怪的问题,aria2会自动调用脚本,但是脚本里的rclone move命令没有效果。
我在终端用直接执行rclone move,效果正常。
我把rclone move命令单独写在一个脚本里,用当前用户执行,效果正常。
我把自动上传的脚本的chmod 777了,还是不行,aria2自动执行没有效果。
脚本在此:http://telegra.ph/aria2%E4%B8%8B%E8%BD%BD%E5%AE%8C%E8%87%AA%E5%8A%A8%E4%B8%8A%E4%BC%A0%E8%84%9A%E6%9C%AC-05-24
有时候是有点玄学。。。另外我文章里面这个脚本只针对文件夹做了更改,如果下载的是单个文件是没处理的。你可以看到下面这段代码:
rclone move “$filepath” g:
1、把rclone move改成mv
2、g:改成你的挂载盘路径
然后试试看。
老哥aria2的配置文件在哪里啊,ariang的高级设置里显示配置文件路径是在/root/.config/aria2/aria2.conf,可是我试了.config这个目录里没有aria这个文件夹啊。。
你按照我的这个配置Aria2是直接用命令行带参数运行的,没有加载配置文件运行,所以自然也就没有配置文件这个东西。这不会影响AriaNG对Aria2的设置进行更改,基本上配置文件能修改的东西,在AriaNG里面一样能够修改并生效。
原来是这样,但这有个小小的不足就是vps重启之后之前在ng里设置的tracker啥的都没了,得重新添加一下
这个确实我没考虑进去,但是既然都运行正常了,为啥要总是重启。。。
有时候会有一些小意外嘛,比如我之前添加了个容量大于vps硬盘空间的离线任务,然后瞬间就把磁盘占满了。。。
小白一枚,nginx能用apache代替吗,nginx一直安装不上,貌似和gcc有关,虽然是centos7
嗯,成功了,最后把ariang放在根目录能用,但是在下层目录里打不开,可能是权限的问题吧
可以的,只要是个网页服务器都可以。
lala大佬 请问这个能配合qBitTorrent使用吗
貌似不行,QB没有办法在下载完成后自动执行脚本这种功能。
Failed to create file system for “g:”: didn’t find section in config file
请问这个rclone move 这个g是什么?
Aria2不支持https下载,怎么解决啊,,头疼。还有已启用的功能里面就两个,怎么安装 其他的
大佬写一个微软云盘的吧
微软云盘指的是OneDrive吗?
脚本在wile true那里死循环了
好像是的,这个脚本不是我写的,之前在网上找的。。