安装工具
安装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
完结撒花。。。