rclone安装及使用教程
同步海量学习资料(小姐姐)一直是一项巨大的工程。为了上传动辄几个T的学习资料,通常需要连续开机数天甚至数周的时间。耗时耗电不说,onedrive之类的软件还非常不便于文件的管理。例如使用同一台电脑同步移动硬盘里的资源时必须要反复设置。。未来更新和整理都变得很麻烦。
目前找到的最优解决方案就是,在各种机器(树莓派,vps,软路由,电脑等)配置rclone服务。之后就可以非常稳定地同步、下载、挂载网盘资料了。
什么是RCLONE
rclone是一款无敌好用的命令行工具。最开始我并不认为命令行工具能够胜任管理文件的任务,然而我很快被打脸了。。简而言之,rclone可以在设备和网盘,设备和设备之间同步、上传、下载数据。且rclone几乎支持所有网盘,包括onedrive, AWS, Googledrive, 阿里云等(显然不包括百度云)。最牛逼的是,全平台通用,且完全免费。
官网地址:点击传送
github地址:点击传送
安装Rclone
PS: linux上基本上操作完全相同。windows上安装更加简单
注意!!!:rclone最好安装最新版,否则容易出bug。如果在多个设备上使用rclone,注意版本需要统一,否则极有可能传输错误。
curl -O http://downloads.rclone.org/rclone-current-linux-amd64.zip
wget https://downloads.rclone.org/rclone-current-linux-arm.zip
//自行选择对应版本
unzip rclone-current-linux-amd64.zip
cp rclone /usr/sbin/
chown root:root /usr/sbin/rclone
chmod 0755 /usr/sbin/rclone
也可以使用apt进行安装。但一定要注意版本问题。
sudo apt-get install rclone
apt的安装方法完成安装后检查一下版本。如果发现一些莫名其妙的bug,记得回来查看版本是不是太旧。
rclone --version
添加网盘
使用rclone设置
rclone config
得到设置界面
Name Type
==== ====
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
很简单的英文就不解释了。常用的有n设置新网盘、q退出设置、d删除网盘。新建为例,选n
name>
这里输入的是这个网盘的简称,比如设置为raspberrypi。未来访问rclone lsd raspberrypi:
就能看到这个网盘的内容了。完成后:
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, Tencent COS, etc)
\ "s3"
.........................
选择网盘,输入编号即可,这里以onedrive为例
client_id> //直接跳过,最后用token就行了
client_secret> //直接跳过
Edit advanced config? (y/n)
y) Yes
n) No (default)
//选择n
********************
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n>
//这里选择N!!!!!开始自己设置
弹出
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "onedrive"
Then paste the result below:
讲的很清楚了,再开一个命令窗口,输入rclone authorize “onedrive”,浏览器会引导你登录onedrive,完成登陆后会显示成功,关闭网页,命令行中会获取到一段token。大概长这样,复制粘贴到之前的窗口。
{"access_token":"eyJ0eXAiOiJKV1QiLCJub25jZSI6IlRuWW5oWk
中间省略一大堆
9RHhu_rb7nls4nN7rDX2eeXPc8lfAqWSLKhc","expiry":"20:01:41.697430626+08:00"}
接下来随着引导程序自动选择就行了。一切结束后就会成功看到网盘挂在了rclone上。这就成功了。
Current remotes:
Name Type
==== ====
yellrasp onedrive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
接着可以使用命令简单看看网盘的情况了。常用的有:
rclone ls 列出指定路径下的所有的文件以及文件大小和路径
rclone lsl 比上面多一个显示上传时间
rclone lsd 列出指定路径下的目录
rclone lsf 列出指定路径下的目录和文件
比如
rclone lsd yellrasp: //网盘名+:(linux路径相同)
你就能看到网盘第一层目录了
上传下载同步
rclone的逻辑和goodsync比较像,和onedrive完全不一样。所以如果只是使用上传下载同步等功能,完全不需要挂载在本地,完全不需要挂载在本地!
操作一:rclone copy复制操作
这算是我最喜欢的功能,没想到这个copy那么方便(见识短浅了…)简单来说完全等同于复制操作。但是可以实现本地和网盘的传输,网盘和网盘的传输。基本操作是
rclone copy path1 path2
例如
rclone copy /home/pi/Desktop/onedrivetest【路径1】 myonedrive:/【路径2】 --transfers 12【同时传输多少文件】 -P
假设rclone上已经挂了网盘1:onedrive1和网盘2:onedrive2,使用这条命令就可以把网盘1的内容复制到网盘2。是不是迁移数据变得简单起来了。
rclone copy onedrive1: onedrive2: --transfers 24 -P
<em>//网盘内的路径可以随意指派。用rclone lsd onedrive:可以慢慢寻找你想要的路径</em>
–transfers的值视具体情况而定。比如树莓派挂载移动硬盘传输,选择3或6比较合适。高性能的vps可以选择24。设备跟不上线程数设太高会崩。
rclone sync同步操作
sync和copy基本相同,区别在于copy是复制,不会删除目标路径的内容,sync是同步,会保持目标路径和源路径一致。比较适合于资源的整理。如果只是添加更新资源使用copy即可。
rclone sync path1: path2: --transfer 随意 -P
操作的时候要小心一点,不然目标路径的东西就没了。
rclone check
为了防止误删文件,可以先用check查看不一样的文件。方法相同
rclone check path1: path2:
操作二:速度
一:onedrive在20年把香港的cdn撤了,所以上传就比较随缘了。我的上传速度大概是3MB/S,如果使用海外的vps进行操作,速度甚至可以高达80MB/S,被秀到了讲道理。速度慢真怪不了微软了。你想想隔壁百度盘吧。
二:上传下载速度快慢和服务商有关。比如校园网或者公司网跑满带宽速度一般压力不大的,也就是10MB/S+,但是有的地方就没那么幸运了。比如我在上传三天之后就被封了,速度只剩几百k。。。
三:可以通过在树莓派上配置clash之类的软件,写好onedrive,gdrive的相关的规则。有需要自行搜索吧。
四:【坑】流量最好不要经过软路由。这是一个非常莫名其妙的bug。报dns 443之类的错误优先考虑切换网络试试。目前查到的教程都没成功。
操作三:别忘了用screen
ssh操作的时候别忘了使用screen,这样关闭ssh也能让任务继续执行了。
apt-get install screen
screen的操作,常用的有
screen rclone copy <em>//后台执行rclone copy操作</em>
按下 ctl+a+d快捷键 <em>//离开screen终端</em>
screen -ls <em>//显示在正在运行的终端,detached表示关闭窗口的任务</em>
screen -r [编号] <em>//回到终端</em>
安装 fuse
挂载前需要安装 fuse,根据自己的系统来选择安装命令:
# Debian/Ubantu
apt-get update && apt-get install -y fuse
# CentOS
yum install -y fuse
操作四:挂载在本地
建议:海外网盘挂载在本地没啥用,除非那啥速度够快。不在乎即时速度的可以考虑,将网盘挂载openwrt,树莓派上就相当于给他们扩容了。可以基于挂载的网盘实现流媒体等功能。
rclone mount rclonedrive1:【网盘】 /home/pi/Desktop/onedrivetest【本地路径】 --copy-links --no-gzip-encoding --no-check-certificate --allow-non-empty --vfs-cache-mode full【读写权限全开,也可以只开读或者写】 --umask 000
卸载网盘:
fusermount -qzu LocalFolder【本都路径】 <em>//卸载的是本地路径的位置,原理很清楚了 </em>
设置开机自启:
command=" " <em>//复制上文挂载网盘的指令</em>
<em>//先测试是否能够挂载上,挂载之后有没有问题。原理就是开机就执行一遍。</em>
进入root模式
sudo -i <em>//debian 10</em>
修改文件(这里使用vim,nano之类的随意)
vim /etc/systemd/system/rclone.service
<em>//复制粘贴以下内容</em>
[Unit]
Description=<a href="https://bbs.jybest.ltd/?tag=rclone" title="更多Rclone相关文章" target="_blank">Rclone</a>
After=network-online.target
[Service]
Type=simple
ExecStart=$(command -v rclone) ${command}
Restart=on-abort
User=root
[Install]
WantedBy=default.target
启动rclone
systemctl start rclone
设置rclone自动启动
systemctl enable rclone
重启,关闭,状态信息
systemctl restart rclone
systemctl stop rclone
systemctl status rclone
onedrive为例,网速给力的话挂载到本地配合plex等播放器看看1080P的视频还是可以的。然而感觉没啥太大必要,毕竟用软件同样可以实现。。
其他rclone命令
参考官方文档:
rclone mkdir <em>//新建文件夹</em>
rclone size <em>//获取文件夹大小</em>
rclone move <em>//类似于剪切操作</em>
rclone delete <em>//删除</em>
rclone purge <em>//清空指定路径</em>
rclone rmdir <em>//删除空目录</em>
rclone md5sum <em>//为指定路径下的所有文件产生一个md5sum文件</em>
rclone sha1sum <em>//为指定路径下的所有文件产生一个sha1sum文件</em>
rclone cleanup <em>//清空网盘,慎重啊</em>
rclone dedupe <em>// 交互式查找重复文件,方便删除/重命名操作【比较有用】</em>
结尾
rclone确实是简单又好用。未来有闲心折腾再整理一下配合流媒体实现在线播放吧。
来源:大为的博客
地址:https://bbs.jybest.ltd/
未经允许不得转载:下一个课程 » rclone安装及使用教程