Loading... <h2 id="toc_0">前言</h2> Rclone 是一个的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。并且通过一些设置可以实现离线下载、服务器备份等非常实用的功能。本篇文章将讲解 Rclone 常用的一些命令参数。 <h2 id="toc_1">安装 Rclone</h2> <h3 id="toc_2">Linux/macOS/BSD</h3> 官方提供了<strong><a href="https://rclone.org/install/" target="_blank" rel="noopener">一键安装脚本</a>:</strong> <pre class=" language-shell line-numbers"><code class=" language-shell"><span class="token function">curl</span> https://rclone.org/install.sh <span class="token operator">|</span> <span class="token function">sudo</span> <span class="token function">bash</span></code><span aria-hidden="true" class="line-numbers-rows"><span></span></span></pre> <h3 id="toc_3">Windows</h3> <h2 id="toc_4">Rclone 设置</h2> <code>rclone config</code><span> </span>- 进入交互式配置选项,进行添加、删除、管理网盘等操作。 <code>rclone config file</code><span> </span>- 显示配置文件的路径,一般配置文件在<span> </span><code>~/.config/rclone/rclone.conf</code> <code>rclone config show</code><span> </span>- 显示配置文件信息 <h2 id="toc_5">命令语法</h2> <pre class=" language-shell line-numbers"><code class=" language-shell"><span class="token comment"># 本地到网盘</span> rclone <span class="token punctuation">[</span>功能选项<span class="token punctuation">]</span> <span class="token operator"><</span>本地路径<span class="token operator">></span> <span class="token operator"><</span>网盘名称:路径<span class="token operator">></span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">..</span>. <span class="token comment"># 网盘到本地</span> rclone <span class="token punctuation">[</span>功能选项<span class="token punctuation">]</span> <span class="token operator"><</span>网盘名称:路径<span class="token operator">></span> <span class="token operator"><</span>本地路径<span class="token operator">></span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">..</span>. <span class="token comment"># 网盘到网盘</span> rclone <span class="token punctuation">[</span>功能选项<span class="token punctuation">]</span> <span class="token operator"><</span>网盘名称:路径<span class="token operator">></span> <span class="token operator"><</span>网盘名称:路径<span class="token operator">></span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">[</span>参数<span class="token punctuation">]</span> <span class="token punctuation">..</span>.</code><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre> <h3 id="toc_6">用法示例</h3> <pre class=" language-shell line-numbers"><code class=" language-shell">rclone move -v /Download Onedrive:/Download --transfers<span class="token operator">=</span><span class="token number">1</span></code><span aria-hidden="true" class="line-numbers-rows"><span></span></span></pre> <h2 id="toc_7">常用功能选项</h2> <ul> <li><code>rclone copy</code><span> </span>- 复制</li> <li><code>rclone move</code><span> </span>- 移动,如果要在移动后删除空源目录,请加上<span> </span><code>--delete-empty-src-dirs</code><span> </span>参数</li> <li><code>rclone sync</code><span> </span>- 同步:将源目录同步到目标目录,只更改目标目录。</li> <li><code>rclone size</code><span> </span>- 查看网盘文件占用大小。</li> <li><code>rclone delete</code><span> </span>- 删除路径下的文件内容。</li> <li><code>rclone purge</code><span> </span>- 删除路径及其所有文件内容。</li> <li><code>rclone mkdir</code><span> </span>- 创建目录。</li> <li><code>rclone rmdir</code><span> </span>- 删除目录。</li> <li><code>rclone rmdirs</code><span> </span>- 删除指定灵境下的空目录。如果加上<span> </span><code>--leave-root</code><span> </span>参数,则不会删除根目录。</li> <li><code>rclone check</code><span> </span>- 检查源和目的地址数据是否匹配。</li> <li><code>rclone ls</code><span> </span>- 列出指定路径下的所有的文件以及文件大小和路径。</li> <li><code>rclone lsl</code><span> </span>- 比上面多一个显示上传时间。</li> <li><code>rclone lsd</code><span> </span>列出指定路径下的目录</li> <li><code>rclone lsf</code><span> </span>- 列出指定路径下的目录和文件</li> </ul> <h2 id="toc_8">常用参数</h2> <ul> <li><code>-n</code><span> </span>=<span> </span><code>--dry-run</code><span> </span>- 测试运行,用来查看 rclone 在实际运行中会进行哪些操作。</li> <li><code>-P</code><span> </span>=<span> </span><code>--progress</code><span> </span>- 显示实时传输进度,500mS 刷新一次,否则默认 1 分钟刷新一次。</li> <li><code>--cache-chunk-size SizeSuffi</code><span> </span>- 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。</li> <li><code>--cache-chunk-total-size SizeSuffix</code><span> </span>- 块可以在本地磁盘上占用的总大小,默认10G。</li> <li><code>--transfers=N</code><span> </span>- 并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如128M的小鸡上使用建议设置为1。</li> <li><code>--config string</code><span> </span>- 指定配置文件路径,<code>string</code>为配置文件路径。</li> <li><code>--ignore-errors</code><span> </span>- 跳过错误。比如 OneDrive 在传了某些特殊文件后会提示<code>Failed to copy: failed to open source object: malwareDetected: Malware detected</code>,这会导致后续的传输任务被终止掉,此时就可以加上这个参数跳过错误。但需要注意 RCLONE 的退出状态码不会为<code>0</code>。</li> </ul> <h2 id="toc_9">日志</h2> rclone 有 4 个级别的日志记录,<code>ERROR</code>,<code>NOTICE</code>,<code>INFO</code><span> </span>和<span> </span><code>DEBUG</code>。默认情况下,rclone 将生成<span> </span><code>ERROR</code><span> </span>和<span> </span><code>NOTICE</code><span> </span>级别消息。 <ul> <li><code>-q</code><span> </span>- rclone将仅生成<span> </span><code>ERROR</code><span> </span>消息。</li> <li><code>-v</code><span> </span>- rclone将生成<span> </span><code>ERROR</code>,<code>NOTICE</code><span> </span>和<span> </span><code>INFO</code><span> </span>消息,<strong>推荐此项</strong>。</li> <li><code>-vv</code><span> </span>- rclone 将生成<span> </span><code>ERROR</code>,<code>NOTICE</code>,<code>INFO</code>和<span> </span><code>DEBUG</code><span> </span>消息。</li> <li><code>--log-level LEVEL</code><span> </span>- 标志控制日志级别。</li> </ul> <h3 id="toc_10">输出日志到文件</h3> 使用<span> </span><code>--log-file=FILE</code><span> </span>选项,rclone 会将<span> </span><code>Error</code>,<code>Info</code><span> </span>和<span> </span><code>Debug</code><span> </span>消息以及标准错误重定向到<span> </span><code>FILE</code>,这里的<span> </span><code>FILE</code><span> </span>是你指定的日志文件路径。 另一种方法是使用系统的指向命令,比如: <pre class=" language-shell line-numbers"><code class=" language-shell">rclone <span class="token function">sync</span> -v Onedrive:/DRIVEX Gdrive:/DRIVEX <span class="token operator">></span> <span class="token string">"~/DRIVEX.log"</span> <span class="token operator"><span class="token file-descriptor important">2</span>></span><span class="token file-descriptor important">&1</span></code><span aria-hidden="true" class="line-numbers-rows"><span></span></span></pre> <h2 id="toc_11">文件过滤</h2> <code>--exclude</code><span> </span>- 排除文件或目录。 <code>--include</code><span> </span>- 包含文件或目录。 <code>--filter</code><span> </span>- 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以<span> </span><code>+</code><span> </span>开头,排除规则以<span> </span><code>-</code><span> </span>开头。 <h3 id="toc_12">文件类型过滤</h3> 比如<span> </span><code>--exclude "*.bak"</code>、<code>--filter "- *.bak"</code>,排除所有<span> </span><code>bak</code><span> </span>文件。也可以写作。 比如<span> </span><code>--include "*.{png,jpg}"</code>、<code>--filter "+ *.{png,jpg}"</code>,包含所有<span> </span><code>png</code><span> </span>和<span> </span><code>jpg</code><span> </span>文件,排除其他文件。 <code>--delete-excluded</code><span> </span>删除排除的文件。需配合过滤参数使用,否则无效。 <h3 id="toc_13">目录过滤</h3> 目录过滤需要在目录名称后面加上<span> </span><code>/</code>,否则会被当做文件进行匹配。以<span> </span><code>/</code><span> </span>开头只会匹配根目录(指定目录下),否则匹配所目录。这同样适用于文件。 <code>--exclude ".git/"</code><span> </span>排除所有目录下的<code>.git</code><span> </span>目录。 <code>--exclude "/.git/"</code><span> </span>只排除根目录下的<code>.git</code><span> </span>目录。 <code>--exclude "{Video,Software}/"</code><span> </span>排除所有目录下的<span> </span><code>Video</code><span> </span>和<span> </span><code>Software</code><span> </span>目录。 <code>--exclude "/{Video,Software}/"</code><span> </span>只排除根目录下的<span> </span><code>Video</code><span> </span>和<span> </span><code>Software</code><span> </span>目录。 <code>--include "/{Video,Software}/**"</code><span> </span>仅包含根目录下的<span> </span><code>Video</code><span> </span>和<span> </span><code>Software</code><span> </span>目录的所有内容。 <h3 id="toc_14">文件大小过滤</h3> 默认大小单位为<span> </span><code>kBytes</code><span> </span>,但可以使用<span> </span><code>k</code><span> </span>,<code>M</code><span> </span>或<span> </span><code>G</code><span> </span>后缀。 <code>--min-size</code><span> </span>过滤小于指定大小的文件。比如<span> </span><code>--min-size 50</code><span> </span>表示不会传输小于 50k 的文件。 <code>--max-size</code><span> </span>过滤大于指定大小的文件。比如<span> </span><code>--max-size 1G</code><span> </span>表示不会传输大于 1G 的文件。 <blockquote><strong>TIPS:</strong><span> </span>博主在实际使用中发现大小过滤两个选项不能同时使用。</blockquote> <h3 id="toc_15">过滤规则文件</h3> <code>--filter-from <规则文件></code><span> </span>从文件添加包含 / 排除规则。比如<span> </span><code>--filter-from filter-file.txt</code>。 过滤规则文件示例: <pre class=" language-none line-numbers"><code class=" language-none">- secret*.jpg + *.jpg + *.png + file2.avi - /dir/Trash/** + /dir/** - *</code><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre> 这里只举例比较常用和简单的一些过滤用法,更复杂和高端的用法可以查看<a href="https://p3terx.com/go/aHR0cHM6Ly9yY2xvbmUub3JnL2ZpbHRlcmluZy8" target="_blank" rel="noopener">官方文档</a>。 <h2 id="toc_16">环境变量</h2> rclone 中的每个选项都可以通过环境变量设置。环境变量的名称可以通过<a href="https://p3terx.com/go/aHR0cHM6Ly9yY2xvbmUub3JnL2ZsYWdzLw" target="_blank" rel="noopener">长选项名称</a>进行转换,删除<span> </span><code>--</code><span> </span>前缀,更改<span> </span><code>-</code><span> </span>为<code>_</code>,大写并添加前缀<span> </span><code>RCLONE_</code>。环境变量的优先级会低于命令行选项,即通过命令行追加相应的选项时会覆盖环境变量设定的值。 比如设置最小上传大小<span> </span><code>--min-size 50</code>,使用环境变量是<span> </span><code>RCLONE_MIN_SIZE=50</code>。当环境变量设置后,在命令行中使用<span> </span><code>--min-size 100</code>,那么此时环境变量的值就会被覆盖。 <h3 id="toc_17">常用环境变量</h3> <ul> <li><code>RCLONE_CONFIG</code><span> </span>- 自定义配置文件路径</li> <li><code>RCLONE_CONFIG_PASS</code><span> </span>- 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件。</li> <li><code>RCLONE_RETRIES</code><span> </span>- 上传失败重试次数,默认 3 次</li> <li><code>RCLONE_RETRIES_SLEEP</code><span> </span>- 上传失败重试等待时间,默认禁用,单位<code>s</code>、<code>m</code>、<code>h</code>分别代表秒、分钟、小时。</li> <li><code>CLONE_TRANSFERS</code><span> </span>- 并行上传文件数。</li> <li><code>RCLONE_CACHE_CHUNK_SIZE</code><span> </span>- 块的大小,默认5M,理论上是越大上传速度越快,同时占用内存也越多。如果设置得太大,可能会导致进程中断。</li> <li><code>RCLONE_CACHE_CHUNK_TOTAL_SIZE</code><span> </span>- 块可以在本地磁盘上占用的总大小,默认10G。</li> <li><code>RCLONE_IGNORE_ERRORS=true</code><span> </span>- 跳过错误。</li> </ul> <h2 id="toc_18">参考资料</h2> <strong><a href="https://rclone.org/" target="_blank" rel="noopener">Rclone 官方文档</a></strong> 最后修改:2024 年 02 月 21 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏