Hugo博客公告弹窗

rclone配合cloudflare r2 备份站点

安装工具

安装pigz压缩

apt-get update
apt-get install pigz

安装rclone

sudo -v ; curl https://rclone.org/install.sh | sudo bash

编辑cloudflare r2配置,当然也可以是其他s3网盘,或者谷歌网盘、onedrive都可以

mkdir -p /root/.config/rclone/
touch /root/.config/rclone/rclone.conf
nano /root/.config/rclone/rclone.conf

注意:名称r3要和backup_config.conf配置文件的remote_name名称一致

配置如下,只需要修改access_key_id、secret_access_key、endpoint 三个参数

[r3]
type = s3
provider = Cloudflare
access_key_id = 111
secret_access_key = 222
region = auto
endpoint = https://333.r2.cloudflarestorage.com

按ctrl+x保存,y退出

测试是否配置正确

rclone ls r3:web  # web是存储桶名称

下载脚本文件

wget https://raw.githubusercontent.com/woniu336/open_shell/main/website_backup.py
wget https://raw.githubusercontent.com/woniu336/open_shell/main/backup_config.conf

编辑backup_config.conf

nano backup_config.conf

需要修改的地方

source_dir: 需要备份的目录
backup_dir:压缩文件保存的临时目录
remote_path:web/bt/backup,注意:web是r2存储桶的名称,/bt/backup是目录,

目录可以不存在,会自动创建

### 排除目录,一行一个,例如

node_modules/

按 ctrl+x 保存,y 退出

手动备份

都设置好以后,手动测试一下

python3 website_backup.py

定时任务

每天凌晨2点备份到r2,备份成功会删除本地备份,不成功会保留本地备份

(crontab -l ; echo "0 2 * * * /usr/bin/python3 /root/website_backup.py") | crontab -

删除任务

crontab -l | grep -v 'website_backup.py' | crontab -

一些rclone命令

把/www/wwwroot/web拷贝到r2下的web存储桶,在bt目录

rclone copy /www/wwwroot/web r3:web/bt --ignore-existing -u -v -P --transfers=15 --ignore-errors --buffer-size=64M --check-first --checkers=10 --drive-acknowledge-abuse

或者反过来

rclone copy r3:web/bt /www/wwwroot/web --ignore-existing -u -v -P --transfers=15 --ignore-errors --buffer-size=64M --check-first --checkers=10 --drive-acknowledge-abuse

列出文件

rclone ls r3:web/bt/backup

删除文件

rclone delete r3:web/bt/backup/backup_20241222_212923.tar.gz

完结撒花。。。

CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-01-15 13:02
clarity统计