csdn_spider/blog/ds19991999/原创-- Rclone笔记.md

185 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 原创
Rclone笔记
# Rclone笔记
>
#### 目录
### 一些简单命令
#### 挂载
```
# windows 挂载命令
rclone mount OD:/ H: --cache-dir E:\ODPATH --vfs-cache-mode writes &
# linux 挂载命令
nohup rclone mount GD:/ /root/GDPATH --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 &
# 取消挂载————linux 通用
fusermount -qzu /root/GDPATH 或者
fusermount -u /path/to/local/mount
# windows 取消挂载
umount /path/to/local/mount
```
#### rclone命令
```
rclone ls
eg____rclone ls remote:path [flags]
ls # 递归列出 remote 所有文件及其大小,有点类似 tree 命令
lsl # 递归列出 remote 所有文件、大小及修改时间
lsd # 仅仅列出文件夹的修改时间和文件夹内的文件个数
lsf # 列出当前层级的文件或文件夹名称
lsjson # 以JSON格式列出文件和目录
rclone copy
eg____rclone copy OD:/SOME/PATH GD:/OTHER/PATH
--no-traverse # /path/to/src中有很多文件但每天只有少数文件发生变化加上这个参数可以提高传输速度
-P # 实时查看传输统计信息
--max-age 24h # 仅仅传输24小时内修改过的文件默认关闭
rclone copy --max-age 24h --no-traverse /path/to/src remote:/PATH -P
rclone sync
eg____rclone sync source:path dest:path [flags]
# 使用该命令时先用 --dry-run 测试,明确要复制和删除的内容
rclone delete
# 列出大于 100M 的文件
rclone --min-size 100M lsl remote:path
# 删除测试
rclone --dry-run --min-size 100M delete remote:path
# 删除
rclone --min-size 100M delete remote:path
# 删除路径及其所有内容filters此时无效这与 delete 不同
rclone purge
# 删除空路径
rclone rmdir
# 删除路径下的空目录
rclone rmdirs
# 移动文件
rclone move
# 移动后删除空源目录
--delete-empty-src-dirs
# 检查源和目标匹配中的文件
rclone check
# 从两个源下载数据并在运行中互相检查它们而不是哈希检测
--download
rclone md5sum
# 为路径中的所有文件生成md5sum文件
rclone sha1sum
# 为路径中的所有文件生成sha1sum文件
rclone size
# 在remotepath中打印该路径下的文件总大小和数量
--json # 输出json格式
rclone version --check #检查版本更新
rclone cleanup # 清理源的垃圾箱或者旧版本文件
rclone dedupe # 以交互方式查找重复文件并删除/重命名它们
--dedupe-mode newest - 删除相同的文件,然后保留最新的文件,非交互方式
rclone cat
# 同linux
rclone copyto
# 将文件从源复制到dest跳过已复制的文件
rclone gendocs output_directory [flags]
# 生成rclone的说明文档
rclone listremotes # 列出配置文件中所有源
--long 显示类型和名称 默认只显示名称
rclone moveto
# 不会传输未更改的文件
rclone cryptcheck /path/to/files encryptedremote:path
# 检查加密源的完整性
rclone about
# 获取源的配额 eg
$ rclone about ODA1P1:
Total: 5T
Used: 284.885G
Free: 4.668T
Trashed: 43.141G
--json # 以 json 格式输出
rclone mount # 挂载命令
# 在Windows使用则需要安装winfsp
--vfs-cache-mode # 不使用该参数只能按顺序写入文件只能在读取时查找即windows程序无法操作文件使用该参数即启用缓存机制
# 共四种模式off|minimal|writes|full 缓存模式越高rclone越多代价是使用磁盘空间默认为full
--vfs-cache-max-age 24h # 缓存24小时内修改过的文件
--vfs-cache-max-size 10g # 最大总缓存10g (缓存可能会超过此大小)
--cache-dir 指定缓存位置
--umask int 覆盖文件系统权限
--allow-non-empty 允许挂载在非空目录
--allow-other 允许其他用户访问
--no-check-certificate 不检查服务器SSL证书
--no-gzip-encoding 不设置接受gzip编码
```
### 用自己的 api 进行 gd 转存
>
见这位大佬博客:[https://www.moerats.com/archives/877/](https://www.moerats.com/archives/877/)
使用 `rclone` 的人太多吉会有一个问题,我们使用的是共享的`client_id`,在高峰期会出现`403`或者还没到`750G`限制就出现`Limitations`问题,所以高频率使用`rclone`转存谷歌文件得朋友就需要使用自己的`api`。通过上面那篇文章给出的方法获取谷歌的 API 客户端`ID`和客户端密钥,`rclone config`命令配置的时候,会有部分提示你输入,直接粘贴就`OK`.
挂载就变成:
```
#该参数主要是上传用的
/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--transfers 4 \
--buffer-size 32M \
--low-level-retries 200
#如果你还涉及到读取使用比如使用H5ai等在线播放就还建议加3个参数添加格式参考上面
--dir-cache-time 12h
--vfs-read-chunk-size 32M
--vfs-read-chunk-size-limit 1G
```
### 突破 Google Drive 服务端 750g 限制
谷歌官方明确限制通过第三方`api`每天限制转存`750G`文件,这个 `750G` 是直接通过谷歌服务端进行,文件没有经过客户端,另外经过客户端上传到 `gd` 与 服务端转存不冲突,官方也有 `750G` 限制,所以每天上传限额一共是 `1.5T`
```
# 一般用法使用服务端API不消耗本地流量
rclone copy GD1:/PATH GD2:/PATH
# disable server side copies 使用客户端 API流量走客户端
rclone --disable copy GD1:/PATH GD2:/PATH
```
这样就是每天 `1.5T` 了。
### 谷歌文档限制
`rclone ls` 中谷歌文档会出现 `-1` 而对于其他 `VFS` 层文件显示 `0` ,比喻通过 `rclone mount``rclone serve`操作的文件。而我们用 `rclone sync``rclone copy`的命令时,它会忽略文档大小而直接操作。也就是说如果你没有下载谷歌文档,就不知道它多大,没啥影响…