Rclone
概述
参考:
Rclone 是一个命令行工具,用来管理云存储上的文件。Rclone 也可以看作 rsync for cloud storage(用于云存储的 rsync)。Rclone 支持各种存储类型,包括 商业文件存储服务、标准传输协议(比如 WebDAV、S3 等)、等等。从这里我们可以查看到所有受支持的存储提供者
Rclone 将存储提供者抽象为 Remote,在我们配置 Rclone 时,经常会看到 Remote 这个词,创建、删除 Remote 这种行为,就是在 INI 格式的配置文件中配置 Remote。这些 Remote 由指定类型的 Backend 提供支持。
比如,我们可以这样描述: 我创建了一个名为 alist 的 Remote,使用的是 WebDav 类型的 Backend。
Rclone 还可以将这些 Remote 作为磁盘挂载在 Windows、macOS、Linux 上,并通过 SFTP、HTTP、WebDAV、FTP、DLNA 对外提供存储能力。
Rclone 安装
rclone 的挂载使用 FUSE,需要安装 winfsp。
Rclone 关联文件与配置
rclone.conf # 各种 Remotes 信息。
- 如果在某些已定义的位置都没有找到 rclone.conf 文件,则会在以下位置创建一个新的配置文件:
- Windows 上
- 在 $APPDATA/rclone/rclone.conf
- 类 Unix 上
- 如果定义了
$XDG_CONFIG_HOME
,则在 $XDG_CONFIG_HOME/rclone/rclone.conf - 如果未定义
$XDG_CONFIG_HOME
,则在 ~/.config/rclone/rclone.conf
- 如果定义了
- Windows 上
Syntax(语法)
参考:
全局标志
参考:
详见 Rclone 配置,命令行标志通常也是 Rclone 的配置,分为两种,与后端无关的和与后端相关的。绝大部分情况,在使用命令行时,我们一般使用与后端无关的的标志。在这个文章中,主要看 Backend 无关配置详解 部分即可
rclone config
进入交互式会话,用以修改配置文件(默认为 ~/.config/rclone/rclone.conf
)。进入交互式配置会话中,我们可以设置新的 Remotes 并管理现有 Remotes。还可以设置或删除密码以保护我们的配置。
除了基础的交互式,我们还可以使用各种子命令来直接修改配置文件
Syntax(语法)
rclone config [FLAGS] [COMMAND]
COMMAND
- file # 显示正在使用的配置文件的j路径
- show # 打印 (解密) 配置文件,或单个 Remote 的配置。
rclone copy
将源 Remote 的文件复制到目标 Remote 中,跳过相同的文件。不会删除目标中的比源中多的文件。
Syntax(语法)
rclone copy SOURCE:SourcePath DEST:DestPath
rclone copyto
copyto 可以在上传单个文件到目标目录下时,改变文件的原名。其他情况与 copy 的功能相同。
Syntax(语法)
rclone mount
详见 Rclone mount
rclone sync
让目标 Remote 与源 Remote 保持相同,仅修改目标 Remote 中的数据。
https://rclone.org/commands/rclone_sync/
注意:sync 命令会导致目标数据丢失,最好使用 –dry-run 或 -i, –interactive 标志进行测试
Syntax(语法)
rclone sync SOURCE:PATH DEST:PATH [FLAGS]
EXAMPLE
将 SRC_REMOTE 中的 SRC_PATH 路径下的文件同步到 DST_REMOTE 中的 DST_PATH 路径下
export SRC_REMOTE="ali-oss"
export DST_REMOTE="hwc-obs"
export SRC_PATH="/notes-learning"
export DST_PATH="/notes-learning"
rclone sync ${SRC_REMOTE}:${SRC_PATH} ${DST_REMOTE}:${DST_PATH} -v
列出 Remote 中的数据相关命令
ls # 列出路径中的对象及其大小和路径
lsl # 列出路径中的对象以及修改时间、大小和路径
lsd # 列出路径中的所有目录/容器/存储桶
lsf
lsjson
应用示例
两个对象存储同步数据
rclone sync 命令会在源和目标之间同步文件。 它会删除目标目录中源目录没有的文件,并且会更新目标目录中的文件。 rclone copy 命令只会在源和目标之间复制文件。 它不会删除目标目录中的文件,也不会更新文件。
同步两个云盘中的数据(待验证,alist 好像有点问题)
nohup rclone sync alist-local:/aliyun alist-local:/baiduyun -vv >> /root/rclone.log 2>&1 &
rclone sync
webdav 挂载为电脑本地硬盘(非网络硬盘)
原文链接:B 站-捕梦小达人
注意:需要安装 winfsp
使用 Alist 的 阿里云网盘时,注意添加 --header
,参考 alist discussions 630
rclone mount --config rclone.conf alist:/ Z: --cache-dir D:\appdata\rclone --vfs-cache-mode full --header "Referer:"
可以参考 PowerShell 的 Management 模块下的 Start-Process 命令的,以便在后台运行,效果如下:
Start-Process "alist.exe" -ArgumentList "server --data D:\appdata\alist" -WindowStyle Hidden -RedirectStandardOutput "D:\Tools\Scripts\log\alist.log" -RedirectStandardError "D:\Tools\Scripts\log\alist-err.log"
Start-Process "rclone.exe" `
-ArgumentList "mount alist-net:/ Z: --cache-dir D:\appdata\rclone-cache --vfs-cache-mode full --vfs-cache-max-age 24h --header Referer:" `
-WindowStyle Hidden `
-RedirectStandardOutput "D:\Tools\Scripts\log\rclone.log" -RedirectStandardError "D:\Tools\Scripts\log\rclone-err.log"
然后可以参考 Windows 管理中的 启动项 以便开机时自动挂载。
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.