灯下哥谭 灯下哥谭
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

灯下哥谭

灯还亮着
首页
关于
  • Hermes Agent 平台
  • Claude Code
  • OpenClaw
  • GPU 推理节点运维
  • DeepSeek Harness
  • MySQL 运维知识地图
  • Elasticsearch 运维知识地图
  • Redis 运维知识地图
  • TiDB 体系
  • DBA 常用 SQL 与命令
  • Nginx 运维知识地图
  • Prometheus 监控
  • Docker
  • Systemd
  • Iptables
  • Firewalld
  • Sshd
  • MySQL8 运维 SOP 手册
  • MySQL 实战 45 讲(读书笔记)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 工作笔记

  • 容器与编排

  • Nginx

  • 监控

    • prometheus监控介绍
    • PromQL介绍
    • VictoriaMetrics 集群版:三组件架构与水平扩展机制解析
    • rclone常用命令参数详解(含 WebDAV 挂载实战)
      • 前言
      • 1. 安装 Rclone
      • 2. Rclone 设置
      • 3. 命令语法
      • 4. 常用功能选项
      • 5. 常用参数
      • 6. 日志
      • 7. 文件过滤
        • 7.1 文件类型过滤
        • 7.2 目录过滤
        • 7.3 文件大小过滤
        • 7.4 过滤规则文件
      • 8. 环境变量
      • 9. WebDAV 挂载实战(扩展场景)
        • 9.1 什么是 WebDAV
        • 9.2 配置 WebDAV 远程存储
        • 9.3 挂载为本地目录
        • 9.4 配置缓存(可选但推荐)
        • 9.5 配置为 systemd 服务(推荐)
        • 9.6 常见问题排查
        • 9.7 带宽限制
      • 10. 坑与边界
      • 11. 验证:挂上之后怎么确认真的能用
      • 12. 参考资料
      • Agent 可直接解析的元数据块
  • 网络安全

  • 其他

  • Linux笔记
  • 监控
灯下哥谭
2022-03-12
目录

rclone常用命令参数详解(含 WebDAV 挂载实战)

# 前言

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

版本说明

本文写于 2022-03,基于 rclone 1.59+。2026-09 复核:命令语法基本未变,缓存参数有细微调整,请以官方文档 (opens new window)为准。


# 1. 安装 Rclone

Linux/macOS/BSD

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

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

curl | sudo bash 把一个远程脚本直接交给 root 执行,脚本内容变了你不会知道。介意的话先下下来看一眼再跑:curl -fsSLO https://rclone.org/install.sh && less install.sh && sudo bash install.sh。或者直接从 GitHub Releases 下二进制并校验 SHA256。

Windows 直接下载


# 2. Rclone 设置

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

# 3. 命令语法

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

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

# 网盘到网盘
rclone [功能选项] <网盘名称:路径> <网盘名称:路径> [参数] [参数] ...
1
2
3
4
5
6
7
8

用法示例

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

# 4. 常用功能选项

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

# 5. 常用参数

  • -n = --dry-run - 测试运行,用来查看 rclone 在实际运行中会进行哪些操作。
  • -P = --progress - 显示实时传输进度,500mS 刷新一次,否则默认 1 分钟刷新一次。
  • --cache-chunk-size SizeSuffix - 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。
  • --cache-chunk-total-size SizeSuffix - 块可以在本地磁盘上占用的总大小,默认10G。
  • --transfers=N - 并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如128M的小鸡上使用建议设置为1。
  • --config string - 指定配置文件路径,string为配置文件路径。
  • --ignore-errors - 跳过错误。比如 OneDrive 在传了某些特殊文件后会提示 Failed to copy: failed to open source object: malwareDetected: Malware detected,这会导致后续的传输任务被终止掉,此时就可以加上这个参数跳过错误。但需要注意 RCLONE 的退出状态码不会为0。

# 6. 日志

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
1

# 7. 文件过滤

  • --exclude - 排除文件或目录。
  • --include - 包含文件或目录。
  • --filter - 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以 + 开头,排除规则以 - 开头。

# 7.1 文件类型过滤

比如 --exclude "*.bak"、--filter "- *.bak",排除所有 bak 文件。

比如 --include "*.{png,jpg}"、--filter "+ *.{png,jpg}",包含所有 png 和 jpg 文件,排除其他文件。

--delete-excluded 删除排除的文件。需配合过滤参数使用,否则无效。

# 7.2 目录过滤

目录过滤需要在目录名称后面加上 /,否则会被当做文件进行匹配。以 / 开头只会匹配根目录(指定目录下),否则匹配所有目录。

--exclude ".git/"          # 排除所有目录下的 .git 目录
--exclude "/.git/"         # 只排除根目录下的 .git 目录
--exclude "{Video,Software}/"  # 排除所有目录下的 Video 和 Software 目录
--exclude "/{Video,Software}/" # 只排除根目录下的 Video 和 Software 目录
--include "/{Video,Software}/**" # 仅包含根目录下的 Video 和 Software 目录的所有内容
1
2
3
4
5

# 7.3 文件大小过滤

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

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

TIPS: 博主在实际使用中发现大小过滤两个选项不能同时使用。

# 7.4 过滤规则文件

--filter-from <规则文件> 从文件添加包含 / 排除规则。

过滤规则文件示例:

- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *
1
2
3
4
5
6
7

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


# 8. 环境变量

rclone 中的每个选项都可以通过环境变量设置。环境变量的名称可以通过长选项名称进行转换,删除 -- 前缀,更改 - 为 _,大写并添加前缀 RCLONE_。环境变量的优先级会低于命令行选项,即通过命令行追加相应的选项时会覆盖环境变量设定的值。

比如设置最小上传大小 --min-size 50,使用环境变量是 RCLONE_MIN_SIZE=50。当环境变量设置后,在命令行中使用 --min-size 100,那么此时环境变量的值就会被覆盖。

常用环境变量

  • RCLONE_CONFIG - 自定义配置文件路径
  • RCLONE_CONFIG_PASS - 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件。
  • RCLONE_RETRIES - 上传失败重试次数,默认 3 次
  • RCLONE_RETRIES_SLEEP - 上传失败重试等待时间,默认禁用,单位s、m、h分别代表秒、分钟、小时。
  • RCLONE_TRANSFERS - 并行上传文件数。
  • RCLONE_CACHE_CHUNK_SIZE - 块的大小,默认5M
  • RCLONE_CACHE_CHUNK_TOTAL_SIZE - 块可以在本地磁盘上占用的总大小,默认10G
  • RCLONE_IGNORE_ERRORS=true - 跳过错误

# 9. WebDAV 挂载实战(扩展场景)

# 9.1 什么是 WebDAV

WebDAV(Web-based Distributed Authoring and Versioning)是一种基于 HTTP 的文件共享协议,许多云存储服务(如 Nextcloud、OwnCloud、坚果云等)都支持 WebDAV。通过 rclone 将 WebDAV 服务挂载为本地目录,可以像访问本地文件一样操作云端数据。

# 9.2 配置 WebDAV 远程存储

首先,使用以下命令创建 WebDAV 配置:

rclone config
1

按照提示完成配置:

  • Name: webdav_remote(可以自定义)
  • Type: 选择 WebDAV
  • URL: 输入 WebDAV 服务器地址(如 https://dav.jianguoyun.com/dav/)
  • Vendor: 选择对应的云服务(如 Jianguoyun、Nextcloud 等)
  • User: 输入用户名
  • Password: 输入密码

完成后,可以通过以下命令测试连接是否正常:

rclone ls webdav_remote:
1

# 9.3 挂载为本地目录

选择一个本地目录作为挂载点(例如 /mnt/webdav):

sudo mkdir -p /mnt/webdav
1

# 9.4 配置缓存(可选但推荐)

为了提高性能,可以使用 rclone 的 VFS 缓存功能:

rclone mount webdav_remote: /mnt/webdav \
  --vfs-cache-mode full \
  --cache-dir /tmp/rclone-cache \
  --vfs-cache-max-size 10G \
  --vfs-cache-max-age 1h \
  --allow-other \
  --daemon
1
2
3
4
5
6
7

参数说明:

  • --vfs-cache-mode full: 启用完整缓存模式,所有读取和写入都经过本地缓存。
  • --cache-dir: 指定缓存目录。
  • --vfs-cache-max-size: 设置缓存的最大大小。
  • --vfs-cache-max-age: 设置缓存的最大有效时间。
  • --allow-other: 允许其他用户访问挂载点。
  • --daemon: 后台运行。

# 9.5 配置为 systemd 服务(推荐)

为了实现开机自启和崩溃后自动拉起,创建 systemd 服务文件:

sudo nano /etc/systemd/system/rclone-webdav.service
1

填写以下内容:

[Unit]
Description=Rclone Mount for WebDAV
Documentation=https://rclone.org/commands/rclone_mount/
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount webdav_remote: /mnt/webdav \
  --vfs-cache-mode full \
  --cache-dir /tmp/rclone-cache \
  --vfs-cache-max-size 10G \
  --vfs-cache-max-age 1h \
  --allow-other \
  --log-file /var/log/rclone-webdav.log \
  --log-level INFO
ExecStop=/bin/fusermount -u /mnt/webdav
Restart=always
RestartSec=10
User=your-username
Group=your-group

[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

保存并执行以下命令:

sudo systemctl daemon-reload
sudo systemctl enable rclone-webdav.service
sudo systemctl start rclone-webdav.service

# 检查服务状态
sudo systemctl status rclone-webdav.service
1
2
3
4
5
6

# 9.6 常见问题排查

挂载点无法访问:

# 检查服务状态
sudo systemctl status rclone-webdav.service

# 查看日志
sudo journalctl -u rclone-webdav.service -n 50
cat /var/log/rclone-webdav.log
1
2
3
4
5
6

文件权限问题:

确保挂载时使用了 --allow-other 参数,并正确设置了服务中的 User 和 Group。

# 9.7 带宽限制

如果需要限制带宽,可以添加以下参数:

--bwlimit 10M
1

# 10. 坑与边界

  • mount 进程被杀,挂载点会变成僵死目录。rclone mount 是用户态 FUSE 挂载,进程一旦被 OOM killer 干掉或异常退出,内核侧的挂载记录还在、用户态的处理进程却没了,这就是为什么挂载点不会自动清理、任何 ls 都会卡住并报 Transport endpoint is not connected。恢复要先解挂再重挂:fusermount -uz /mnt/webdav(-z 是惰性卸载,能解掉正被占用的挂载点),再重启挂载。把 mount 交给 systemd 托管并配 Restart=always 能少踩一半这类问题。

  • --vfs-cache-mode 各档位的写入语义不同。off 与 minimal 下,应用程序对已存在文件的随机写、以及「写完再读回」的操作会失败或读到旧内容,因为没有本地回写缓存;数据库文件、SQLite、日志追加这类场景必须用 writes 或 full。代价是本地要留出缓存空间(--vfs-cache-max-size 限制上限),且 写入返回成功不等于已经落到远端 —— 原理上写入先落本地缓存文件、再由后台异步回刷到远端 —— 缓存回刷是异步的,卸载前要留出回刷时间,别写完就 umount。

  • WebDAV 后端的能力取决于服务端实现。rclone 的 --checksum 依赖服务端返回校验和,多数 WebDAV 服务不提供,此时校验会静默退化成按大小和修改时间比对(--size-only 的效果);服务端如果连修改时间都不支持写入,rclone sync 每次都会认为文件有变化而重传。上生产前先用 rclone about 和一次小文件 --dry-run 摸清后端支持到哪一步。

  • sync 会删目标端多余文件,copy 不会。方向写反是不可逆的数据丢失,任何 sync 命令第一次跑一律先加 --dry-run 看清楚要删什么。


# 11. 验证:挂上之后怎么确认真的能用

# 1. 挂载点确实存在,且类型是 fuse.rclone
mount | grep webdav
findmnt /mnt/webdav

# 2. 读得到:目录能列出来,且不卡
ls -l /mnt/webdav/

# 3. 写得进:落一个测试文件
echo "rclone-check-$(date +%s)" > /mnt/webdav/.rclone-check

# 4. 从远端侧回证(不经过挂载点,直接问后端),
#    能列出来才说明数据真的到了远端,而不是只躺在本地 VFS 缓存里
rclone ls webdav:/ | grep rclone-check

# 5. 清理
rm /mnt/webdav/.rclone-check
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

托管成 systemd 服务时,再确认服务本身的状态与日志:

systemctl status rclone-webdav.service
journalctl -u rclone-webdav.service -n 30 --no-pager
1
2

# 12. 参考资料

  • Rclone 官方文档 (opens new window)
  • Rclone 安装指南 (opens new window)
  • Rclone Mount 命令 (opens new window)

# Agent 可直接解析的元数据块

{
  "runbook": {
    "task": "rclone-commands-and-webdav-mount",
    "permalinks": ["/pages/916795/"],
    "merged_from": ["/pages/c1bd32/"],
    "category": "linux/monitoring",
    "tags": ["rclone", "webdav", "mount", "sync"],
    "rclone_versions": ["1.59+", "1.63+"],
    "verified_date": "2026-09"
  }
}
1
2
3
4
5
6
7
8
9
10
11
#数据迁移#Obsidian
上次更新: 9/11/2026

← VictoriaMetrics 集群版:三组件架构与水平扩展机制解析 Firewalld 企业运维实战:从入门到防DDoS→

最近更新
01
DeepSeek Harness 实战 06|学习笔记:插件、工具、技能不在同一个维度上 原创
09-11
02
DeepSeek Harness 实战 05|让两个编码 Agent 共用一份长期记忆 原创
09-09
03
DeepSeek Harness 实战 04|学习笔记:从「已知限制」里读出三处设计张力 原创
09-08
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式