IP地址检测
视频播放器
输入关键词搜索
登录
再也不需要移动硬盘,数据“自动备份”最佳方式

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

2023-07-25
编程开发

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

网盘我选择OneDrive,因为它下载不限速,缺点:当一个文件夹包含10000个以上文件,rclone会报错couldn’t list files: UnknownError

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

操作步骤

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

brew install rclone

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

rclone config

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

docker命令如下:

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

# 语法
docker run --rm \
    -e TZ=Asia/Shanghai \
    # 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 \
    -e TZ=Asia/Shanghai \
    -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任务,每天零点30分执行(为了和其他crontab脚本错开时间)

# 第一步:cd进入脚本目录
# 第二步:每次执行之前,删除log文件,避免log文件无限递增
# 第三步:执行脚本并将日志写入log文件
30 0 * * * cd [shell脚本所在目录] && rm -rf backup.log && /bin/bash start-backup.sh >> backup.log 2>&1

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

THE END
0/500
暂无评论