宝塔部署Rclone备份到webdav

在宝塔面板中使用 Rclone 将数据备份到 WebDAV

核心步骤是在服务器上安装并配置 Rclone,将 WebDAV 路径添加为一个远程存储,然后利用 Rclone 命令(如 copysync)将宝塔上的本地目录(如网站文件、数据库)复制到该 WebDAV 远程存储,并可结合宝塔的计划任务实现定期自动备份。

1. 服务器安装 Rclone

  • 登录服务器(SSH)
  • 执行安装脚本(CentOS/Debian/Ubuntu):
curl https://rclone.org/install.sh | sudo bash

2. 配置 Rclone 远程 WebDAV

  • 进入配置rclone config
  • 输入 n 创建新远程 (New remote),命名为 webdav_remote(可自定义)。
  • 选择 WebDAV 类型(数字),通常在列表里。
  • 输入 WebDAV 服务器的 URL,如 your.webdav.server
  • 输入用户名、密码。
  • 关键点:选择是否使用自动配置(Use auto config?),在服务器上通常选择 n (No),然后遵循提示在能访问浏览器的电脑上完成验证(若需要)。

3. 执行备份

  • 同步网站文件
rclone sync /www/wwwroot/sky.chump.cc/download/downloads NasWebdav:/photo/采集test

将本地 /www/wwwroot/your_site_dir 同步到 WebDAV 上的 remote_folder_name

  • 同步数据库(需先导出)
# 导出数据库(假设是 MySQL)
mysqldump -u your_db_user -p your_db_name > /tmp/db_backup.sql
# 上传到 WebDAV
rclone copy /tmp/db_backup.sql webdav_remote:remote_folder_name --progress

4. 利用宝塔计划任务自动化

  • 登录宝塔面板
  • 进入 “计划任务” (Task Scheduler)。
  • 添加一个计划任务。
  • 任务类型:Shell脚本。
  • 执行周期:设置每天/每周执行的频率。
  • 执行脚本:粘贴上面 rclone syncrclone copy 命令。

总结

  • 核心rclone config 配置 WebDAV,rclone sync/copy 进行传输。
  • 自动化:将 Rclone 命令加入宝塔计划任务。
  • WebDAV URL 需包含协议头(http/https)和路径。
  • 远程文件夹 webdav_remote:remote_folder_name 中的 remote_folder_name 是 WebDAV 上的目标文件夹。

rclone 中文文档:常用命令大全

1. 概述

rclone 是一个命令行程序,用于同步文件和目录,并支持网盘同步,可同步网盘包括如下:

  • Amazon Drive
  • Amazon S3
  • Backblaze B2
  • Box
  • Ceph
  • DigitalOcean Spaces
  • Dreamhost
  • Dropbox
  • FTP
  • Google Cloud Storage
  • Google Drive
  • HTTP
  • Hubic
  • Jottacloud
  • IBM COS S3
  • Memset Memstore
  • Mega
  • Microsoft Azure Blob Storage
  • Microsoft OneDrive
  • Minio
  • Nextcloud
  • OVH
  • OpenDrive
  • Openstack Swift
  • Oracle Cloud Storage
  • ownCloud
  • pCloud
  • put.io
  • QingStor
  • Rackspace Cloud Files
  • SFTP
  • Wasabi
  • WebDAV
  • Yandex Disk
  • The local filesystem

2. 常用的 rclone 命令

  • rclone config : 配置会话;
  • rclone copy : 将文件从原文件夹复制至目标文件夹,跳过已复制的文件;
  • rclone sync : 将文件从原文件夹同步至目标文件夹,只修改目的地;
  • rclone move : 将文件从原文件夹移动至目标文件夹;
  • rclone delete : 删除路径中的内容;
  • rclone purge : 清空指定路径下的所有文件数据;
  • rclone mkdir : 创建一个新目录;
  • rclone rmdir : 删除一个空目录;
  • rclone rmdirs : 删除路径下的所有空目录;
  • rclone check : 检查源和目标的数据是否匹配;
  • rclone ls : 列出指定路径下所有的文件包含文件的大小及路径;
  • rclone lsd : 列出路径中的所有目录 containers 和 buckets;
  • rclone lsl : 列出具有大小、修改时间和路径中的所有对象;
  • rclone md5sum : 为路径中的所有对象生成一个 md5sum 文件;
  • rclone sha1sum : 为路径中的所有对象生成一个 sha1sum 文件;
  • rclone size : 返回远程路径中对象的总大小和数量;
  • rclone version : 显示版本号;
  • rclone cleanup : 如果可能的话,清理 remote;
  • rclone dedupe : 交互式查找重复文件并删除重命名它们;
  • rclone authorize : 远程认证;
  • rclone cat : 连接文件并将它们发送到 stdout;
  • rclone copyto : 将文件从源复制到目标,跳过已复制的文件;
  • rclone genautocomplete : rclone 输出完成脚本;
  • rclone gendocs : rclone 将 markdown 文档输出到所提供的目录;
  • rclone listremotes : 列出所有远程的配置文件;
  • rclone mount : 将远程目标挂载至本地;
  • rclone moveto : 将文件或目录从源移动至目标;
  • rclone obscure : 在 rclone.conf 文件中使用模糊密码;
  • rclone cryptcheck : 检验远程认证;
  • rclone about : 获取配额信息;

3. 选项

3.1 --backup-dir=DIR

当使用 synccopymove 时,所有涉及到覆盖或删除的文件变动,原始文件会被移动到 --backup-dir=DIR 选项所设置的目录中,如果设置了后缀选项 --suffix,则在文件后缀附加指定字符串,例如原文件 abc.txt,如果指定 --suffix 20181101,则备份后的文件名全称为 abc.txt20181101

# 同步本地目录至远程目录 current 的文件,并且备份已经覆盖或删除文件至远程 old 文件夹中
rclone sync /path/to/local remote:current --backup-dir remote:old

# 同步本地目录 "./" 至远程 "test" 目录,覆盖或删除的文件移动至远程 old 文件夹中,并将后缀名后附加 "20181108"
sudo rclone sync ./ One:test --backup-dir One:old --suffix 20181108

3.2 --bind string

要绑定到输出连接的本地地址。这可以是 IPv4 地址、IPv6 地址或主机名。如果主机名没有解析或解析为多个 IP 地址,则会出错。

3.3 --bwlimit=BANDWIDTH_SPEC

此选项控制带宽限制。限制可以通过两种方式指定:单个限制或依据时间表限制。指定带宽限制单位为 kBytes/s,或使用后缀 b、k、M、G,默认值为 0,表示不限制带宽。例如,要将带宽限制为 10MB/s,则使用 --bwlimit 10M

还可以指定限制的"时间表",这将导致在某些时间应用某些限制。要指定时间表,请将条目格式设置为 WEEKDAY-HH:MM, BANDWIDTH WEEKDAY-HH:MM, BANDWIDTH…,其中:WEEKDAY 是可选元素。它可以写成整个世界或仅使用 3 个第一个字符。HH:MM 从 00:00 到 23:59 是一小时。

例1:如下时间表避免白天工作时间,早 8:00 限制带宽 512kBytes/sec,12:00 限制提升至 10M,下午 13:00 降至 512kBytes/sec,18:00 提升至 30M,在 23:00 开始完全禁用,网络全速运行。

--bwlimit "08:00,512 12:00,10M 13:00,512 18:00,30M 23:00,off"

例2:周一带宽限制为 512kBytes/sec,周五结束前提升至 10Mbytes/s。周日 10:00,它将设置为 1Mbyte/s。从周日的 20:00 起将是无限的。

--bwlimit "Mon-00:00,512 Fri-23:59,10M Sat-10:00,1M Sun-20:00,off"

例3(等价于例4):

--bwlimit "Mon-00:00,512 12:00,1M Sun-20:00,off"

例4

--bwlimit "Mon-00:00,512 Mon-12:00,1M Tue-12:00,1M Wed-12:00,1M Thu-12:00,1M Fri-12:00,1M Sat-12:00,1M Sun-12:00,1M Sun-20:00,off"

带宽限制仅适用于数据传输。它们不适用于目录列表的带宽。注意,这些单位是字节/秒,而不是比特/秒。通常连接是以比特/秒来测量的,转换时需要除以 8。例如 10Mbit/s 连接,那么在指定参数时需要计算 10/8=1.25Mbyte/s,即 --bwlimit 1.25M

在 Unix 系统(Linux, MacOS, …)上,可以通过向 rclone 发送 SIGUSR2 信号来切换带宽限制器。它允许消除长时间运行的 rclone 传输的限制,并在需要时将其恢复为使用 --bwlimit 指定的值。假设只有一个 rclone 实例在运行,你可以像这样切换限制器:

kill -SIGUSR2 $(pidof rclone)

通过如下配置可以动态更改 bwlimit:

rclone rc core/bwlimit rate=1M

3.4 --buffer-size=SIZE

设置缓冲区大小来加速文件传输。每个 -transfer 都会使用这么多内存来缓冲。当使用 mount 或 cmount 时,每个打开的文件描述符将使用设置的缓冲区大小的内存进行缓冲。设置为 0 可禁用最小内存使用的缓冲。

3.5 --checkers=N

并行运行的检查器数量。检查程序在同步期间对文件进行等同性检查。对于某些存储系统(例如 S3, Swift, Dropbox),这可能需要很长时间才能并行运行。默认是并行运行 8 个检查程序。

3.6 -c, --checksum

通常,rclone 会查看文件的修改时间和大小,以查看它们是否相等。如果设置此标志,则 rclone 将检查文件哈希和大小以确定文件是否相等。当远程不支持设置修改时间并且需要比仅检查文件大小更准确的同步时,这非常有用。

当在对象上存储相同散列类型的远程之间进行传输时,这非常有用,例如 Drive 和 Swift。有关哪些远程控制支持哪种散列类型的详细信息,请参阅概述部分中的表。

例如 rclone --checksum sync s3:/bucket swift:/bucket 比没有 --checksum 标志的运行得快的多。使用此标志时,如果远程文件不正常,rclone 将不会更新远程文件的 mtimes。

3.7 --config=CONFIG_FILE

指定 rclone 配置文件的位置。通常配置文件位于主目录中 .config/rclone/rclone.conf,如果设置了 XDG_CONFIG_HOME,它将位于 XDG_CONFIG_HOME/rclone/rclone.conf

如果您运行 rclone -h 并查看 --config 选项帮助,您将看到默认位置的位置。使用此标志可覆盖配置位置,例如 rclone --config='.myconfig'

3.8 --contimeout=TIME

设置连接超时时间。TIME 为时间格式,5 秒参数为 5s,10 分钟为 10m 或 3h30m。连接超时是 rclone 等待连接进入远程对象存储系统的时间。默认为 1m(1 分钟)。

3.9 --dedupe-mode MODE

运行重复数据删除命令模式。模式分为 interactive, skip, first, newest, oldest, rename。缺省为 interactive(交互式)。

3.10 --disable FEATURE, FEATURE, …

禁用以逗号分隔的可选功能列表。例如:禁用服务器端 move 和服务器 copy 的使用:--disable move, copy

查看可以禁用哪些功能的列表:--disable help

请参阅概览功能和可选功能,了解哪个功能能做到什么。此标志可用于调试和特殊情况(例如 Google Drive 将服务器端 copy 总量限制为 100GB/天)。

3.11 -n, --dry-run

进行试运行而不进行永久性更改。使用它来查看 rclone 在没有实际操作的情况下会做什么。设置同步命令以删除目标中的文件时很有用。

3.12 --ignore-checksum

通常,rclone 会检查传输文件的校验和是否匹配,如果没有,则会在传输时出现"损坏"错误。您可以使用此选项跳过该检查。您应该只在遇到"传输损坏"错误消息时才使用它,并且您确定可能要传输可能已损坏的数据。

3.13 --ignore-existing

使用此选项将使 rclone 无条件地跳过目标上存在的所有文件,无论这些文件的内容如何。虽然这不是一般推荐的选项,但在文件因加密而发生变化的情况下,它可能很有用。但是,如果传输中断,则无法纠正部分传输。

3.14 --ignore-size

通常,rclone 会查看文件的修改时间和大小,以查看它们是否相等。如果设置此标志,则 rclone 将仅检查修改时间。如果设置 --checksum,那么它只检查 checksum。它还会导致 rclone 跳过验证传输后大小相同。

这对于向 OneDrive 传输文件和从 OneDrive 传输文件非常有用,OneDrive 偶尔会误报图像文件的大小(有关详细信息,请参阅 #399)。

3.15 -i, --ignore-times

使用此选项将导致 rclone 无条件地上传所有文件,而不管目标上的文件状态如何。通常,rclone 会跳过任何具有相同修改时间且大小相同的文件(如果使用 --checksum,则具有相同的 checksum)。

3.16 --immutable

将源文件和目标文件视为不可变并禁止修改。设置此选项后,将根据请求创建和删除文件,但永远不会更新现有文件。如果源和目标之间的现有文件不匹配,则 rclone 将给出错误"源和目标存在但不匹配:修改了不可变文件"。

请注意,只有传输文件的命令(例如 synccopymove)才会受到此行为影响,并且只允许修改。文件仍然可以被明确删除(例如 deletepurge)或隐式删除(例如 syncmove)。如果需要避免删除和修改,请使用 copy --immutable

这用作不可变或仅附加数据集(特别是备份存档)的附加保护层,其中修改意味着损坏并且不应传播。

3.17 --leave-root

rmdirs 中,即使它是空的,它也不会删除根目录。

3.18 --log-file=FILE

将输出记录输出至 FILE。默认情况下,此选项无效。这对于跟踪同步和 -v 标志的问题非常有用。有关详细信息,请参阅"日志记录部分"。

请注意,如果您使用 logrotate 程序来管理 rclone 的日志,那么您应该使用 copytruncate 选项,因为 rclone 没有旋转日志的信号。

3.19 --log-format LIST

日志格式选项是以逗号来分隔的列表。date, time, microseconds, longfile, shortfile, UTC。默认为 date,time

3.20 --log-level LEVEL

设置 rclone 的日志级别:默认的日志级别为 NOTICE(警告)。

  • DEBUG(调试):等效于 -vv。它输出大量的调试信息及有用的 bug 报告,并真正打出 rclone 正在做什么。
  • INFO(信息):等效于 -v。它会输出每个传输的信息,默认情况下每分钟打印一次 STATS。
  • NOTICE(警告):如果没有提供日志标志,则为默认日志级别。当工作时它输出的信息有限,只输出警告及重要的信息。
  • ERROR(错误):等效于 -q。它只输出错误消息。

3.21 --low-level-retries NUMBER

这个选项可以控制 rclone 的低级重试次数,它用于重试失败的操作,通常是一个 HTTP 请求。例如,这可能是上传大文件的一部分。你将在日志中看到带有 -v 标志的低级重试。这不应该从正常操作中的默认值更改。但是,如果您进行了大量的低级重试,则可能希望减小该值,以便 rclone 更快的进行高级重试,请参阅 --retries 标志。

禁用低次重试,使用命令 --low-level-retries 1

3.22 --max-backlog=N

设定检测或传输用于 synccopymove 的最大的排队等候的文件积压。你可以任意设定它,它只会在队列使用的时候占用内存。需要注意的是,当使用积压时,它将以数字 N 单位 kb 的内存顺序完成。

设置 N 的值越大则 rclone 可以能够更准确地计算待处理文件的数量,并能够更精准地预估完成时间。N 值越小则 rclone 同步至远程列表的越快。

3.23 --max-delete=N

设置 rclone 不要删除超过 N 个文件。如果超出限制,那么返回错误信息并且 rclone 将停止正在进行的操作。

3.24 --max-depth=N

设置除了 purge(清空)命令之外所有命令的递归深度。例如:rclone --max-depth 1 ls remote:path 命令,它只能看到远程设定目录中的顶级目录文件,使用 --max-depth 2 则意味着您将看到两层目录级别中的所有文件,依次类推。

由于历史的原因,lsd 命令默认使用 --max-depth 为 1,您可以使用命令行标志覆盖它。也可以使用 --max-depth 1 命令来禁用递归操作。需要注意的是,如果与 sync 并使用 --delete-excluded 一起使用,则会将未递归的文件视为已经排除,并将在目标上删除。如果你不确定会发生什么,请先使用 --dry-run 进行测试。

3.25 --max-transfer=SIZE

设定传输的最大值,rclone 当达到指定的大小时,它将停止传输,并将退出代码标记为 8。默认为关闭。

3.26 --modify-window=TIME

检查文件是否已被修改时,这是文件可以具有的最大允许时间差,仍然被视为等效。默认值为 1ns,除非被远程控制覆盖。例如,OS X 仅将修改时间存储到最近的秒,因此如果您正在读取和写入 OSX 文件系统,则默认情况下这将是 1 秒。此命令行标志允许您覆盖该计算的默认值。

3.27 --no-gzip-encoding

不要设置 Accept-Encoding: gzip。这意味着 rclone 不会自动向服务器请求压缩文件。如果您已将服务器设置为使用 Content-Encoding: gzip 返回文件但您上传了压缩文件,则非常有用。没有必要在正常操作中设置它,这样做会降低 rclone 的网络传输效率。

3.28 --no-update-modtime

使用此标志时,如果远程文件不正常,rclone 将不会更新远程文件的修改时间。如果远程与其他工具同步(例如 Google Drive 客户端),则可以使用此功能。

3.29 -P, --progress

此标志使 rclone 更新终端中静态块中的统计信息,提供传输的实时概述。任何日志消息都将在静态块上方滚动。日志消息会将静态块向下推到终端的底部。通常每 500mS 更新一次,但可以使用 --stats 标志覆盖此期间。这可以与 --stats-one-line 标志一起使用,以实现更简单的显示。注意:在 Windows 上,在修复此错误之前,所有非 ASCII 字符都将被替换。当 --progress 正在使用时。

3.30 -q, --quiet

通常,rclone 输出统计信息和完成消息。如果设置此标志,它将尽可能少地输出。

3.31 --retries int

如果失败多次失败,则重试整个同步(默认值为 3)。一些遥控器可能不可靠,一些重试有助于获取由于错误而没有被转移的文件。使用 --retries 1 禁用重试。

3.32 --retries-sleep=time

这将设置 --retries 指定的每次重试之间的间隔默认值为 0。使用 0 禁用。

3.33 --size-only

通常,rclone 会查看文件的修改时间和大小,以查看它们是否相等。如果设置此标志,则 rclone 将仅检查大小。这可以用于从 Dropbox 传输文件,这些文件已经被桌面同步客户端修改,该客户端没有像 rclone 那样设置修改时间的校验和。

3.34 --stats=TIME

传输数据(sync, copy, copyto, move, moveto)的命令将定期打印数据传输统计信息以显示其进度。默认值为 1m,使用 0 禁用。如果设置统计间隔,则所有命令都可以显示统计信息。这在运行其他命令,检查或安装时非常有用。

默认情况下,统计信息记录在 INFO 级别,这意味着它们不会以默认日志级别 NOTICE 显示。使用 --stats-log-level NOTICE-v 使它们显示。有关日志级别的详细信息,请参阅"日志记录"部分。

请注意,在 macOS 上,你可以发送 SIGINFO(通常是终端中的 Ctrl-T)以立即打印统计信息。

3.35 --stats-file-name-length integer

默认情况下,-stats 输出将截断超过 40 个字符的文件名和路径。这相当于提供 --stats-file-name-length 40。使用 --stats-file-name-length 0 禁用由 stats 打印的文件名截断。

3.36 --stats-log-level string

日志级别显示 --stats 输出。这可以是 DEBUGINFONOTICEERROR。默认值为 INFO。这意味着在默认的日志记录级别,即 NOTICE,统计信息将不会显示 - 如果您希望它们使用 --stats-log-level NOTICE。有关日志级别的详细信息,请参阅"日志记录"部分。

3.37 --stats-one-line

指定此值后,rclone 会将统计信息压缩为一行,仅显示最重要的统计信息。

3.38 --stats-unit=bits|bytes

默认情况下,数据传输速率将以 bytes/s 打印。此选项允许以 bit/s 打印数据速率。

3.39 --suffix=SUFFIX

这仅适用于 --backup-dir。如果未设置,则 --backup-dir 将使用其原始名称移动文件。如果已设置,则文件将添加 SUFFIX。有关详细信息,请参阅 --backup-dir

3.40 --syslog

在功能强大的操作系统(不是 Windows 或 Plan9)上,将所有日志输出发送到 syslog。这对于在脚本或 rclone 挂载中运行 rclone 非常有用。

3.41 --syslog-facility string

如果使用 --syslog,则设置 syslog 工具(例如 KERN, USER)。请参阅 man syslog 以获取可能的设施列表。默认设施是 DAEMON。

3.42 --tpslimit float

每秒限制 HTTP 事务。默认值为 0,用于表示每秒无限制的事务数。例如,要将 rclone 限制为每秒 10 个 HTTP 事务使用 --tpslimit 10,或者每 2 秒限制 1 个事务使用 --tpslimit 0.5。当 rclone 每秒的事务数导致云存储提供程序出现问题时(例如,禁止您或限制速率),请使用此选项。这对于 rclone mount 来控制使用它的应用程序的行为非常有用。另见 --tpslimit-burst

3.43 --tpslimit-burst int

--tpslimit 的最大交易次数。(默认 1)通常 --tpslimit 将完成指定的每秒事务数。但是,如果你提供 --tps-burst,那么 rclone 可以在空闲时保存一些事务,从而提供一个高达所提供参数的突发。例如,如果你提供 --tpslimit-burst 10 那么如果 rclone 已经空闲超过 10 * -tpslimit 那么它可以在它们再次受限之前非常快地完成 10 个事务。这可用于提高 --tpslimit 的性能,而不会更改每秒的长期平均事务数。

3.44 --track-renames

默认情况下,rclone 不会跟踪重命名的文件,因此如果您在本地重命名文件然后将其同步到远程文件,rclone 将删除远程文件上的旧文件并上传新副本。

如果您使用此标志,并且远程支持服务器端副本或服务器端移动,并且源和目标具有兼容的哈希,则这将在同步操作期间跟踪重命名并执行服务器端重命名。文件将按大小和哈希匹配,如果两者都不匹配,则将考虑重命名。

如果目标不支持服务器端复制或移动,则 rclone 将回退到默认行为并将错误级别消息记录到控制台。注意:--track-renames 不支持加密。

3.45 --delete-(before, during, after)

此选项允许您指定在同步文件夹时删除目标上的文件时间。在开始传输任何新文件或更新文件之前,指定值 --delete-before 将删除目标上存在的所有文件,但不删除源文件。这使用两次通过文件系统,一次用于删除,一次用于复制。

指定 --delete-during 将在检查和上传文件时删除文件。这是最快的选项,使用的内存最少。

指定 --delete-after(默认值)将延迟删除文件,直到成功传输所有新的/更新的文件。要删除的文件将在复制传递中收集,然后在复制传递成功完成后删除。要删除的文件保存在内存中,因此此模式可能会占用更多内存。这是最安全的模式,因为如果之后没有错误,它只会删除文件。如果在删除开始之前出现错误,那么由于存在 IO 错误,您将收不到删除文件的消息。

3.46 --fast-list

任何涉及目录列表的事件(例如 sync, copy, ls)时,rclone 通常会列出一个目录并在使用更多目录列表处理任何子目录之前对其进行处理。这可以并行化,并且使用最少的内存可以非常快速地工作。

但是,某些云存储可以在一个(或少量)事务中列出目录下的所有文件。它们往往是基于 bucket 的云存储(例如 S3, B2, GCS, Swift, Hubic)。

如果使用 --fast-list 标志,则 rclone 将使用此方法列出目录。这将对列表产生以下影响:

  • 它将使用更少的交易
  • 它将使用更多内存,rclone 必须将整个列表加载到内存中
  • 它可能更快,因为它使用更少的事务
  • 它可能会更慢,因为它无法并行化

rclone 应始终使用和不使用 --fast-list 提供相同的结果。如果您为交易付费并且可以将整个同步列表放入内存中,则建议使用 --fast-list。如果你有一个非常大的同步,那么不要使用 --fast-list 否则你将耗尽内存。如果你在不支持的云存储上使用 --fast-list,那么 rclone 将忽略它。

3.47 --timeout=TIME

此参数将设置 IO 空闲超时。如果传输已经开始但是在这么长时间内变为空闲,则认为它已断开并断开连接。默认为 5 分钟,设置 0 为禁用。

3.48 --transfers=N

并行运行的文件传输数。如果云存储提供大量超时,或者如果你有足够的带宽和快速的云存储,那么将它设置为较小的数字有时会很有用。默认设置是并行运行 4 个文件传输。

3.49 -u, --update

该参数会强制 rclone 跳过目标上存在的任何文件,并且修改时间比源文件更新。如果现有目标文件的修改时间与源文件的修改时间相等,则在大小不同时将更新。不支持 MOD 时间的云存储上,检查的时间将是上传的时间。这意味着如果上传到其中一个云存储,rclone 将跳过目标上存在的任何文件,并且上传的时间比源文件的修改时间更新。当转移到不直接支持 MOD 时间的云存储时,这很有用,因为它比 --size-only 检查更准确,比使用 --checksum 更快。

3.50 --use-server-modtime

一些云存储是不保留文件修改时间的(例如:Swift, S3)。在此类的云存储上,rclone 将原始的 modtime 存储为对象的附加元数据。默认情况下,当操作 modtime 时,它将进行 API 调用以检索元数据。使用此参数,可以禁用额外的 API 调用,而是依赖服务器的修改时间。通常情况下,本地同步远程数据,只要知道本地文件比服务器文件的时间更新就足够了,因此它可以加快进程并减少所需的 API 调用次数。

3.51 -v, -vv, --verbose

使用参数 -v,则 rclone 会返回每个传输文件的少量重要事件;使用参数 -vv,则 rclone 会返回每个传输文件执行每一步的详细信息。

3.52 -V, --version

显示 rclone 版本信息。

日志记录

rclone 有 4 个级别的日志记录:ERRORNOTICEINFODEBUG。默认情况下,rclone 会记录到标准错误。这意味着您可以重定向标准错误并仍然看到 rclone 命令的正常输出(例如 rclone ls)。

  • 增加 -q 标志,则 rclone 将仅生成错误消息
  • 增加 -v 标志,rclone 将生成错误,通知和信息消息
  • 增加 -vv 标志,rclone 将生成错误,通知,信息和调试消息

您还可以使用 --log-level 标志控制日志级别。如果使用 --log-file=FILE 选项,rclone 会将 Error,Info 和 Debug 消息以及标准错误重定向到 FILE。如果使用 --syslog 标志,则 rclone 将登录到 syslog,而 --syslog-facility 控制它使用的设施。

Rclone 将所有日志消息的前缀加上大写字母的前缀,例如 INFO,这样可以轻松地为不同类型的信息 grep 日志文件。

4. rclone mount

4.1 OneDrive 映射至本地

rclone mount One:XXX /volumes/XXX --copy-links --no-gzip-encoding --no-check-certificate