再也不需要移动硬盘,数据“自动备份”最佳方式

420 阅读2分钟

原文链接:wmwm.me/article/471…

推荐一个非常好用的开源工具Rclone(我理解为"remote clone"远程克隆),网盘资源管理神器(上传、下载、同步),支持市面上绝大部分网盘提供商。配置简单,使用方便,最关键的是,它可以增量同步(只同步修改的内容),当作数据备份工具最合适不过了。

网盘我选择OneDrive,因为它下载不限速

接下来我就演示下如何用Rclone将服务器数据自动备份到OneDrive

操作步骤

在本地电脑上安装rclone,这里以mac系统为例,其他系统安装方式可查阅官方文档:rclone.org/install/

brew install rclone

运行rclone config命令,该命令会自动打开电脑上的浏览器,并生成config文件(mac系统~/.config/rclone目录)

rclone config

把生成的config目录复制到服务器上,然后在服务上运行rclone docker容器,(我个人比较喜欢用docker,rclone还有其他运行方式,参考官方文档:rclone.org/install/#do…

docker命令如下:

# Usage:
#   rclone sync source:path dest:path [flags]
# Flags:
#   -P,--progress   命令执行进度
#   --dry-run       试运行。只打印出会被上传的文件,但是不进行上传操作
#   --filter-from   文件排除规则

# 语法
docker run --rm \
    # You need to mount the host rclone config dir at /config/rclone into the Docker container.
    -v [config目录路径]:/config/rclone \
    # You need to mount a host data dir at /data into the Docker container.
    -v $PWD/data:/data:shared \
    -v [需要备份的内容]:[挂载到容器中] \
    rclone/rclone sync [需要备份的内容] [remote]:[对应的网盘路径] --filter-from [filter-list.txt文件路径]
    
# 例如:
docker run --rm \
    -v $PWD/config:/config/rclone \
    -v $PWD/data:/data:shared \
    -v /home/docker:/home/docker \
    rclone/rclone \
    sync [本地目录] [remote]:[远程目录] --filter-from /home/docker/rclone/filter-list.txt

过滤规则写到filter-list.txt

# 可以写:目录名或文件名
# 从上到下:最严格的排在最前面
# +号代表include -号代表exclude !号代表delete exsiting rule
- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**

最后,添加一条crontab任务,每天零点执行

0 0 * * * cd [shell脚本所在目录] && /bin/bash start-backup.sh >> backup.log 2>&1

只有第一次才会上传全量数据,之后每次只会上传修改的部分。再也不用担心服务器的数据丢失了!当然,你也可以用同样的方式备份个人电脑数据。

本文的后续更新及错误订正会发布在我的网站,防止迷路,建议收藏:wmwm.me