实用工具|教你如何使用备份神器 Rclone,手把手保姆级教程

news2024/12/25 14:24:49

目录

什么是Rclone

功能

特性

 支持的提供商

 虚拟提供商

使用

安装

配置

语法

命令列表

常用参数

日志

过滤

环境变量

最佳实践


什么是Rclone

Rclone是一个用于管理云存储上的文件的命令行程序。它是云供应商web存储接口的一个功能丰富的替代方案。超过40种云存储产品支持rclone,包括S3对象存储、商业和消费者文件存储服务以及标准传输协议。

Rclone具有与unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat相当的强大云功能。Rclone熟悉的语法包括shell管道支持和--干运行保护。它在命令行、脚本或通过其API使用。

用户称rclone为“云存储的瑞士军刀”,“技术与魔法无法区分”。

Rclone真的很照顾你的数据。它始终保留时间戳并验证校验和。有限带宽上的传输;从上次传输的好文件开始,间歇性连接或受配额限制的连接可以重新启动。您可以检查文件的完整性。在可能的情况下,rclone采用服务器端传输来最大限度地减少。

提示:以上是根据官网翻译得来。

 

功能

Rclone支持但不仅限于下面列出功能:

  • 将文件备份(和加密)到云存储
  • 从云存储恢复(和解密)文件
  • 将云数据镜像到其他云服务或本地
  • 将数据迁移到云端,或在云存储供应商之间迁移
  • 将多个、加密、缓存或多样化的云存储挂载为磁盘
  • 使用lsf、ljson、size、ncdu分析和说明云存储上保存的数据
  • 联合文件系统一起呈现多个本地和/或云文件系统作为一个

提示:以上是根据官网翻译得来。

 

特性

  • 接送服务

    • 始终检查 MD5、SHA1 哈希值以确保文件完整性
    • 时间戳保留在文件中
    • 可以随时重新启动操作
    • 可以进出网络,例如两个不同的云提供商
    • 可以使用多线程下载到本地磁盘
  • 将新文件或更改的文件复制到云存储
  • 同步(一种方式)使目录相同
  • 验证后将文件移动到云存储删除本地
  • 检查哈希和丢失/额外的文件
  • 将您的云存储挂载为网络磁盘
  • 通过HTTP / WebDav / FTP / SFTP / DLNA服务本地或远程文件
  • 实验性基于 Web 的 GUI

提示:以上是根据官网翻译得来。

 支持的提供商

 虚拟提供商

 

使用

官方文档写得非常详细,这里主要用写几个应用场景看如何使用。以下使用 ubuntu为例演示:

安装

Rclone 就是一个二进制文件包,可以直接下载设置环境变量即可使用,这里直接使用官方的脚本安装。

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone

直接执行 rclone version 可以查看到版本号即安装成功。

配置

配置可以直接添加配置文件的方式或者通过进入交互式配置会话命令一步步的完成配置。

默认配置完成的后配置文件都保存在:/root/.config/rclone/rclone.conf 目录下。

我这里直接通过给出腾讯COS的配置文件。

[tencent-cos] # 自定义的名称
type = s3  # 存储类型,参考官方文档所有支持的类型
provider = TencentCOS  # 提供商,参考官方文档或者全部
env_auth = false   # 不通过环境变量配置认证
access_key_id = AKxxxxxxxx  # 腾讯云后台生成的密钥key
secret_access_key = Secretxxxxxxx # 腾讯云后台生成的密钥secret
endpoint = cos.ap-chengdu.myqcloud.com # 腾讯云cos所在的地区,看你所在存储桶的公网地址

语法

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

# [参数]为可选项

举例:

# 同步本地/data/file的文件夹内容到tencent-cos存储下的/beifen文件夹中,并且排除/root/excludes.txt中指定的文件内容
rclone sync /data/file tencent-cos:/beifen --exclude-from '/root/excludes.txt'

# 两个网盘文件同步
rclone copy 配置网盘名称1:网盘路径 配置网盘名称2:网盘路径

 

命令列表

使用 rclone --help 可查看所有命令,这里只列出常用的命令,其他的命令可以看官方文档详细了解:

命令说明
rclone copy复制
rclone move移动,如果要在移动后删除空源目录,加上 --delete-empty-src-dirs 参数
rclone mount挂载
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列出指定路径下的目录和文件

常用参数

命令说明
-n = --dry-run测试运行,查看 rclone 在实际运行中会进行哪些操作
-P = --progress显示实时传输进度,500 ms刷新一次,否则默认1分钟刷新一次
--cache-chunk-size 5M块的大小,默认 5M 越大上传越快,占用内存越多,太大可能会导致进程中断
--onedrive-chunk-size 100M提高 OneDrive 上传速度适用于G口宽带服务器
--drive-chunk-size 64M提高 Google Drive 上传速度适用于G口宽带服务器
--cache-chunk-total-size SizeSuffix块可以在本地磁盘上占用的总大小
--transfers=N并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如 128M 的小鸡上使用建议设置为1。
--config string指定配置文件路径,string为配置文件路径
--ignore-errors跳过错误
--size-only根据文件大小校验,不校验hash
--drive-server-side-across-configs服务端对服务端传输

日志

rclone 有 4 个级别的日志记录,ERRORNOTICEINFO 和 DEBUG。默认情况下,rclone 将生成 ERROR 和 NOTICE 级别消息。

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

过滤

我们若同步的时候需要过滤掉一些不重要的文件的话,比如程序启动日志、敏感文件。

命令说明
--exclude-from排除文件或目录列表来自某个文件指定
--include-from包含文件或目录来自某个文件指定
--filter-from文件过滤规则来自某个文件指定
--exclude排除文件或目录
--include包含文件或目录
--filter文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以+开头,排除规则以-开头
  • 文件类型过滤

    比如 --exclude "*.bak",表示排除所有 .bak 结尾的文件,也可以写作 --filter "- *.bak"

    比如 --include "*.{png,jpg}",包含所有 png 和 jpg 文件,排除其他文件,也可以写作 --filter "+ *.{png,jpg}"

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

  • 目录过滤

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

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

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

    --exclude "{Video,Software}/" 排除所有目录下的 Video 和 Software 目录。

    --exclude "/{Video,Software}/" 只排除根目录下的 Video 和 Software 目录。

    --include "/{Video,Software}/**" 仅包含根目录下的 Video 和 Software 目录的所有内容。

  • 大小过滤

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

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

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

  • 过滤规则来自某个文件

    --exclude-from <规则文件> :从文件添加包含规则

    --include-from <规则文件>:从文件添加删除规则

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

    filter-file.txt 示例:

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

环境变量

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

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

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

最佳实践

备份本地 /data/file 目录到腾讯云cos存储中,并设置定时任务每晚自动同步,这样可以达到定时备份重要文件上云的效果。

  1. 目录 /data/file 下创建 excludes.txt ,里面填写需要排除的文件列表。

    logs/**  # 排除logs下所有文件
    *.bak # 排除.bak结尾的文件
    *.zip # 排除.zip结尾的文件
  2. 配置腾讯云cos在此忽略,直接编写 rclone 命令,测试执行是否同步。

    rclone sync -v /data/file tencent-cos:/beifen --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1
    手动执行一把,然后查看  tail -f /root/rclone.log 是否输出日志了,只要没报错则成功。
  3. 配置定时任务,每天自动执行

    执行 crontab -e # 打开定时任务列表,跳到最后新起一行添加步骤2.成功的命令并保存,内容如下:(表示每晚3点30分进行同步)

    30 4 * * * rclone sync -v /data/file tencent-cos:/beifen --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1

    执行systemctl restart cron.service 重启定时任务生效

  4. 达到执行时间后检查 /root/rclone.log 下的日志保证没问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java高级编程】Java集合

Java集合 1、Java集合框架概述1.1、集合框架的概述1.2、集合框架 2、Collection接口方法3、Iterator迭代器接口3.1、Iterator迭代器概述3.1、Iterator的使用 4、Conllection子接口一&#xff1a;List4.1、List框架4.2、ArrayList的源码分析4.3、面试题&#xff1a;ArrayList、L…

掌握这些vue内容,让你在提升代码复用上不再纠结!

前端工程化的最终目的都是为了能够更好地维护代码。代码复用是提升效率和可维护性的利器。 vue 中针对不同场景和业务情况&#xff0c;提供了各种方式。全面了解这些内容&#xff0c;可以在开发过程中让你得心应手&#xff01; 方式建议组件主要的构建模块组合式函数侧重于有状…

【单片机】STM32单片机,定时器,多路PWM,TIM1、TIM2、TIM3、TIM4,STM32F103

文章目录 STM32中文参考手册V10.pdfTIM1 的四路PWMTIM2 的四路PWMTIM3 的四路PWMTIM4 的四路PWM STM32中文参考手册V10.pdf 在《STM32中文参考手册V10.pdf》有写&#xff1a; TIM1 的四路PWM TIM1 的PWM是带互补输出的&#xff0c;较为高级和复杂&#xff0c;有兴趣可以参…

Z3Ordering编码及查询c++实现 (GeoMesa翻译)

网上搜了很多Z3-Ordering实现没搜到,通过 sfcurve-master和geomesa-geomesa-3.2.2 得scala代码改编而来, 环境为C, vs2015, 理论上windows和Linux都可以用. 不依赖任何库, 这项自身理解和翻译断断续续进行, 最近终于有一点进展, 本次放出Z3, 待全部实现完毕将直接挂出 详细…

知识图谱实战

一、知识图谱简单介绍 二、知识图谱的构建 三、知识图谱问答方案 NL2SQL:自然语言转为SQL语句 bulid_graph.py """知识图谱""" #三元组&#xff1a;实体-关系-实体 实体-属性-属性值import re,json from py2neo import Graph from collectio…

shell脚本检测进程的CPU内存占用率

使用方法&#xff1a; 把xxx替换为自己进程的名字&#xff0c;然后直接运行该脚本即可在当前目录下产生一个叫做memory_info.txt的文件&#xff0c;记录进程的CPU内存占用率信息。可以用来查看自己进程对系统资源的消耗情况。 #!/bin/bashprocess"xxx" output_file…

C#,数值计算——算术编码压缩技术与方法(Compression by Arithmetic Coding)源代码

算术编码的数据压缩 算术编码是无损和有损数据压缩算法中常用的一种算法。 这是一种熵编码技术&#xff0c;其中常见符号比罕见符号用更少的比特进行编码。与诸如霍夫曼编码之类的众所周知的技术相比&#xff0c;它具有一些优势。本文将详细描述CACM87算术编码的实现&#xf…

Uniapp_分包

前言&#xff1a;由于微信小程序的包只限制压缩不能超过2M&#xff0c;当开发的页面过多就要进行分包操作,tabbar页面不能进行分包其他页面可以 最多5个分包 不超过20M 第一步、找到这个位置 然后把这个代码复制进去 开启分包 "optimization" : {"subPackages&…

Linux系统【VS】Windows系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

FPS(CF、CS GO、PUBG、APEX、瓦罗兰) AI YOLOV5 自瞄 模型 权重

YOLOV5的各种AI自瞄权重&#xff0c;有需要的联系 联系方式 如果对上面的资源有需要&#xff0c;私聊或者留言或者进入下面项目了解详细内容 联系方式 加我时&#xff0c;请备注所需要的权重 https://gitee.com/wcx895278175/cf-ai-yolov5-self-aiming

【Oracle】springboot连接Oracle 集成mybatis、druid

目录 项目结构与库表数据pom.xmlapplication.yml实体类Mappercontroller接口测试 基于spring-boot 2.7.11&#xff0c;连接Oracle 11g 仅做一个简单的示例 特别说明&#xff08;不一定正确&#xff0c;还请指正&#xff09;&#xff1a;我Oracle也不熟&#xff0c;但据我观察发…

【Java高级语法】(二十三)系统辅助工具类:解析System类,一个系统操作与资源管理工具类~

Java高级语法详解之系统辅助工具类 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 System类常用方法3.2 使用技巧 4️⃣ 应用场景&#x1f33e; 总结 1️⃣ 概念 Java的System类是Java标准库中一个重要且常用的类。它被设计用于提供与系统相关的操作和信息访问功能。System类的设计…

【算法系列之贪心算法III】leetcode135. 分发糖果

134. 加油站 力扣题目链接 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定…

创建临时文件mkstemp()和tmpfile()

有些程序需要创建一些临时文件&#xff0c;仅供其在运行期间使用&#xff0c;程序终止后即行删除。例如&#xff0c;很多编译器程序会在编译过程中创建临时文件。GNU C语言函数库为此而提供了一系列库函数。&#xff08;之所以有“一系列”的库函数&#xff0c;部分原因是由于这…

ASD光谱仪.asd格式光谱曲线文件转换为.txt格式的方法

本文介绍基于ViewSpec Pro软件&#xff0c;将ASD地物光谱仪获取到的.asd格式文件&#xff0c;批量转换为通用的.txt文本格式文件的方法。 ASD光谱仪是英国Malvern Panalytical公司研发的系列野外便携式全范围光谱辐射仪和光谱仪&#xff0c;可以获取地物的实时光谱信息。我们用…

Arch Linux 中的 AUR 是什么?您应该使用它吗?

Arch Linux AUR 存储库包含社区驱动的软件,如果您采取一些简单的预防措施,就可以安全使用。即使您不懂 shell 脚本,也可以使用一些指标来判断包是否安全。 AUR 是 Arch Linux 皇冠上的宝石之一,提供了数千个附加软件包。但是这个用户驱动的存储库使用起来安全吗,还是应该避…

你给企业创建百科了吗?5分钟带你看懂创建企业百度百科的实用技巧和注意事项

企业百度百科是一种企业在互联网上展示自身形象和产品的重要途径。通过在百度百科上创建企业页面&#xff0c;可以让更多的人了解企业的历史、文化、产品和服务等信息&#xff0c;提高企业知名度和品牌形象。分媒互动将介绍企业百度百科的创建方法和需要注意的事项。 一、企业百…

搭建IP代理池 - ProxyPool

前言 在爬虫开发中&#xff0c;我们经常会碰到ip封禁&#xff0c;访问限制的问题&#xff0c;今天主要分享个我在开发中用到过比较好用的ip代理池&#xff0c;希望有需要的小伙伴提供到帮助~ 简介 ProxyPool是一个简易高效的代理池&#xff0c;他可以在windows上搭配redis使…

【强化学习】常用算法之一 “SARSA”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

飞控的安全性设计

针对安全性设计&#xff0c;就必须先考虑故障情况。一般来讲&#xff0c;飞控故障有以下几个方面&#xff1a; 1、通讯故障 飞行器与地面端&#xff08;遥控器或地面站等设备&#xff09;需要进行实时通信&#xff0c;如果通信发生故障&#xff0c;后果很严重&#xff0c;因此…