OneCode-cucldk.com

当前位置:首页 - 技术杂谈 - VPS主机 - 正文

原文地址:https://p3terx.com/archives/rclone-advanced-user-manual-common-command-parameters.html

Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。并且通过一些设置可以实现离线下载、服务器备份等非常实用的功能。本篇文章将讲解 Rclone 常用的一些命令参数。

安装Rclone

官方提供了一键安装脚本:

curl https://rclone.org/install.sh | sudo bash

Rclone 设置

rclone config - 进入交互式配置选项,进行添加、删除、管理网盘等操作。
rclone config file - 显示配置文件的路径,一般配置文件在 ~/.config/rclone/rclone.conf,更换服务器可直接copy该文件。
rclone config show - 显示配置文件信息

命令语法

# 本地到网盘
rclone [功能选项] <本地路径> <网盘名称:路径> [参数] [参数] ...
# 网盘到本地
rclone [功能选项] <网盘名称:路径> <本地路径> [参数] [参数] ...
# 网盘到网盘
rclone [功能选项] <网盘名称:路径> <网盘名称:路径> [参数] [参数] ...

用法示例

rclone move -v /Download Onedrive:/Download --transfers=1

常用功能选项

rclone copy - 复制
rclone move - 移动,如果要在移动后删除空源目录,请加上 --delete-empty-src-dirs 参数
rclone sync - 同步:将源目录同步到目标目录,只更改目标目录。
rclone delete - 删除路径下的文件内容。
rclone purge - 删除路径及其所有文件内容。
rclone mkdir - 创建目录。
rclone rmdir - 删除目录。
rclone rmdirs - 删除指定灵境下的空目录。如果加上 --leave-root 参数,则不会删除根目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下的所有的文件以及文件大小和路径。
rclone lsl - 比上面多一个显示上传时间。
rclone lsd 列出指定路径下的目录
rclone lsf - 列出指定路径下的目录和文件

常用参数

-n = --dry-run - 测试运行,用来查看 rclone 在实际运行中会进行哪些操作。
-P = --progress - 显示实时传输进度。
--cache-chunk-size SizeSuffi - 块的大小,默认 5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。
--cache-chunk-total-size SizeSuffix - 块可以在本地磁盘上占用的总大小,默认 10G。
--transfers=N - 并行文件数,默认为 4。在比较小的内存的 VPS 上建议调小这个参数,比如 128M 的小鸡上使用建议设置为 1。
--config string - 指定配置文件路径,string 为配置文件路径。比如在使用宝塔面板输入命令操作时可能会遇到找不到配置文件的问题,这时就需要指定配置文件路径。

日志

rclone 有 4 个级别的日志记录,ERROR,NOTICE,INFO 和 DEBUG。

默认情况下,rclone 将生成 ERROR 和 NOTICE 级别消息。

-q rclone 将仅生成 ERROR 消息。
-v rclone 将生成 ERROR,NOTICE 和 INFO 消息,推荐此项。
-vv rclone 将生成 ERROR,NOTICE,INFO 和 DEBUG 消息。
--log-level LEVEL 标志控制日志级别。

输出日志到文件

使用 --log-file=FILE 选项,rclone 会将 Error,Info 和 Debug 消息以及标准错误重定向到 FILE,这里的 FILE 是你指定的日志文件路径。

另一种方法是使用系统的指向命令,比如:

rclone sync -v Onedrive:/DRIVEX Gdrive:/DRIVEX > "~/DRIVEX.log" 2>&1

文件过滤

--exclude 排除文件或目录。比如 --exclude *.bak,排除所有 bak 文件。
--include 包含文件或目录。比如 --include *.{png,jpg} ,包含所有 png 和 jpg 文件,排除其他文件。
--delete-excluded 删除排除的文件。需配合过滤参数使用,否则无效。

目录过滤

--exclude .git/ 排除所有目录下的 .git 目录。
--exclude /.git/ 只排除根目录下的 .git 目录。

以/开头只会匹配根目录,而如果没有,则是匹配所目录。同样适用于文件。

文件大小过滤

默认大小单位为 kBytes ,但可以使用 k ,M 或 G 后缀。

--min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件。
--max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件。

文件过滤规则

--filter-from <规则文件> 从文件添加包含 / 排除规则。比如 --filter-from filter-file.txt。

过滤规则文件示例:

- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *

+ 是包含,- 是排除

这里只举例比较常用和简单的一些过滤用法,更复杂和高端的用法可以查看官方文档。

下面要把GoogleDrive网盘挂载到云主机/VPS上

新建一个你要挂载的目录,例如挂载到/home/gdrive

mkdir -p /home/gdrive

再执行挂载命令:

rclone mount gd: /home/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes

gd 为 Rclone 的配置名称,比如你在创建配置 rclone 的时候 Name 填的 gd,/home/gdrive 为本地路径;

这里还可以自定义设置网盘里的文件夹路径,例如:

rclone mount gd:backup /home/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes

gd:backup gd 为 Rclone 的配置名称:backup 为网盘里的目录名

挂载只要几秒钟,但终端不会返回成功信息,关闭 SSH 重连即可,不能Ctrl+C

重连后查看是否挂载成功:

df -h

有看到gd硬盘、使用量和本地主机路径即成功挂载

gd: 15G  1.1M   15G   1% /home/gdrive

卸载 Google Drive 磁盘

fusermount -qzu /home/gdrive


本文来源:OneCode

本文地址:https://cucldk.com/post/rclone.html

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。