
转自:https://zhuanlan.zhihu.com/p/355431169
https://www.xiaoz.me/archives/15519
https://www.cnblogs.com/frytea/p/13411497.html
1. 获取Token
在Windows电脑上下载Rclone,下载地址:https://rclone.org/downloads/ ,然后解压,使用cmd进入解压后的文件夹:
rclone.exe authorize "onedrive"
整个大括号就是token,包括大括号。
2. 在Linux上安装Rclone
直接使用官方提供的一键脚本:
#curl https://rclone.org/install.sh | bash
3. 配置
安装完成后执行:
rclone config n) New remote s) Set configuration password q) Quit config n/s/q> n name> Rats #随便填,后面要用到 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 Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, and Tencent COS \ "s3" 5 / Backblaze B2 \ "b2" 6 / Box \ "box" 7 / Cache a remote \ "cache" 8 / Citrix Sharefile \ "sharefile" ................. Storage> 31 #选择31,Microsoft OneDrive Microsoft App Client Id - leave blank normally. client_id> #留空 Microsoft App Client Secret - leave blank normally. client_secret> #留空 Remote config Choose OneDrive account type? * Say b for a OneDrive business account * Say p for a personal OneDrive account b) Business p) Personal b/p> p #这里选择个人版,你想挂载Business就选择b Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine y) Yes n) No y/n> n #选择n For this to work, you will need rclone available on a machine that has a web browser available. Execute the following on your machine: rclone authorize "onedrive" Then paste the result below: result> {"access_token":""} #输入之前在客户端授权的内容 -------------------- [Rats] client_id = client_secret = token = {"access_token":""} -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y # 选择y Current remotes: Name Type ==== ==== Rats onedrive e) Edit existing remote n) New remote d) Delete remoter) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> q #选择q退出
因版本不同,网盘类型序号会经常变动。
4. 安装fuse
#apt install fuse #yum install fuse
5. 挂载OneDrive
新建挂载目录
mkdir /home/public/onedrive
根据个人喜好选位置挂载
挂载为磁盘,下面的DriveName、Folder、LocalFolder参数根据说明自行替换
--daemon为守护进程参数--umask 000 给予挂载目录完全权限
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
DriveName: 执行rclone config命令显示的自定义Name
Folder: 在OneDrive网盘下的文件夹名,如果要挂载根目录,可以不要Folder,但是前面的“:”必须保留,否则会报错。
LocalFolder: linux本地的文件夹 ,即为第一步创建的目录
示例命令:
rclone mount Rats:/
/home/public/onedrive --copy-links --no-gzip-encoding
--no-check-certificate --allow-other --allow-non-empty --umask 000
使用df -h
命令查看是否成功。
Rclone通过网络挂载方式将云存储挂载到本地机器,既然是通过网络挂载,性能和稳定性自然比不上本地磁盘。另外在使用过程中可能还会发现Rclone占用CPU、内存过高等情况,这个和机器本身性能以及Rclone配置有一定关系。
Rclone挂载依赖于fuse。
这里我已经挂载了OneDrive存储,并将名称命名为Rats,可通过rclone listremotes命令查看到:
$ rclone listremotes Rats:
Rclone配置文件位于$HOME/.config/rclone/rclone.conf,其中$HOME为用户家目录。
$ ls -l $HOME/.config/rclone/rclone.conf -rw------- 1 rclone rclone 1876 Dec 27 18:32 /home/rclone/.config/rclone/rclone.conf
Rclone缓存目录位于$HOME/.cache/rclone,如果您服务器挂载了额外的磁盘,建议将这个目录做软连接到非系统盘,避免Rclone使用中占用较多的系统磁盘。
下面直接用自己的挂载命令来做说明:
#一条完整的Rclone挂载命令 rclone mount Rats:/file /data/wwwroot/xxx --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 10G --vfs-read-chunk-size-limit 100M --buffer-size 100M --daemon
别被上面一串命令吓到,我们来拆分下,发现还是非常简单的:
rclone mount:是rclone挂载命令
Rats:/file:上面已经提到,提前配置好了OneDrive,并将名称命名为Rats,Rats:/file则是OneDrive上的路径
/data/wwwroot/xxx:为本地文件夹路径(建议为空目录)
--allow-other:指的是允许非当前Rclone用户外的用户进行访问
--attr-timeout 5m:文件属性缓存,(大小,修改时间等)的时间。如果小鸡配置比较低,建议适当提高这个值,避免过多的和内核交互,占用资源。
-vfs-cache-mode full:开启VFS文件缓存,这样可减少Rclone与API交互,同时可提高文件读写效率
--vfs-cache-max-age 24h:VFS文件缓存时间,这里设置的24小时,如果文件很少更改,建议设置更长的时间
--vfs-cache-max-size 10G:VFS文件缓存上限大小,建议不超过当前空余磁盘的50%
vfs-read-chunk-size-limit 100M:分块读取大小,这里设置的是100M,可提高文件读的效率,比如1G的文件,大致分为10个块进行读取,但与此同时API请求次数也会增多
--buffer-size 100M:内存缓存,如果您内存比较小,可降低此值,如果内存比较大,可适当提高
--daemon:指后台方式运行
了解了上面参数含义后,便可根据小鸡的配置来适当调整,以免Rclone发生CPU、内存莫名使用过多,而不知所措。更多参数说明,可参考官方文档:https://rclone.org/commands/rclone_mount/
取消挂载
通常情况,直接使用umount命令取消挂载即可:
#/path/to/local/mount为挂载目录
umount /path/to/local/mount
或者使用fusermount
fusermount -u /path/to/local/mount
如果提示磁盘繁忙,只能暴力kill杀掉进程了,命令为:
#kill杀掉进程
pgrep 'rclone'|xargs kill -9
#再次取消挂载
umount /path/to/local/mount
挂载参数小结:
1、比较重要的环境,建议单独创建rclone用户来运行
2、Rclone缓存目录建议设置为非系统分区(/)
3、如果机器配置较低,请降低文件缓存和内存缓存
4、建议添加--allow-other参数,否则可能发生部分程序不可读(无权限)的情况
Rclone可让小鸡秒变大盘鸡,但是也得合理配置参数,让其发挥出最佳性能,切记不要网上盲目复制粘贴参数,否则效果可能并不理想。
6. 开机自启
适用于使用systemctl
命令的linux
强调一点,开机自动挂载脚本里面不要加--daemon(后台方式运行)参数。
#将command后面修改成你上面手动运行命令中,除了rclone和--daemon外的全部参数。 #注意mount前面有一个空格 command=" mount onedrive:/ /usr/local/onedrive --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-age 24h --vfs-cache-max-size 5G --vfs-read-chunk-size-limit 100M --buffer-size 100M" #以下是一整条命令,一起复制到SSH客户端运行 cat > /etc/systemd/system/rclone.service <<EOF [Unit] Description=Rclone After=network-online.target [Service] Type=simple ExecStart=$(command -v rclone) ${command} Restart=on-abort User=root [Install] WantedBy=default.target EOF
现在就可以使用systemctl
来挂载OneDrive了
# 开机自启
systemctl enable rclone
#关闭开机自启
systemctl disable rclone
#启动
systemctl start rclone
#停止
systemctl stop rclone
#重启
systemctl restart rclone
#查看状态
systemctl status rclone
7. 复制和同步命令
#本地上传到网盘
rclone [指令名称] [本地路径] [网盘名称:网盘路径] [flags] [flags]
# 网盘下载到本地
rclone [指令名称] [网盘名称:网盘路径] [本地路径] [flags]
# 网盘上传/下载到网盘
rclone [指令名称] [网盘名称:网盘路径] [网盘名称:网盘路径] [flags] [flags]
# 显示速度 -v
# 指令copy sync
常用命令:
rclone config – 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone mount -将远程文件路径挂载到本地路径。
rclone copy – 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync – 将源数据同步到目的地址,只更新目的地址的数据。
rclone move – 将源数据移动到目的地址。
rclone delete – 删除路径下所有文件但不删除路径。
rclone purge – 删除路径及所有文件。
rclone mkdir – 创建一个新目录。
rclone rmdir – 删除目录。
rclone check – 检查源和目的地址数据是否匹配。
rclone ls – 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd – 列出指定路径下所有的目录/容器/桶。
rclone lsl – 列出指定路径下所有文件以及修改时间、文件大小和路径。
rcloen lsf – 以易于解析的格式列出对象和目录
rcloen lsjson – 以JSON格式列出对象和目录
rclone md5sum – 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum – 为指定路径下的所有文件产生一个sha1sum文件。
rclone size – 获取指定路径下,对象的总大小和数量。
rclone version – 查看当前版本。
rclone cleanup – 清空remote。
rclone dedupe – 交互式查找重复文件,进行删除/重命名操作。



本文地址:https://www.xxnet.eu.org/?post=321
版权声明:若无注明,本文皆为“点滴记忆---观雨亭”原创,转载请保留文章出处。

