导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
最新评论
广树管理员
2025-11-25 08:59
@ArcMeteor:一起好奇
ArcMeteor
2025-11-25 08:57
我也...很好奇
广树管理员
2025-11-24 18:18
@九日:音乐至今还在我的脑海中回荡
九日
2025-11-24 18:17
听过这个游戏的纯音乐,现在也收藏了这个游戏(最近疯狂收集galgame中,不知道什么时候会玩hh),看评分非常高呢,等有兴致了会来推这个
广树管理员
2025-11-24 18:15
@九日:买起来!
攻略中
全民高尔夫环球之旅
暂无评分
Steam全民高尔夫环球之旅
2025年9月07日 12时 ~ 攻略中
已累计游玩2个月19天
《全民高尔夫 环球之旅》除了能体验到与过去作品相同的乐趣、爽快与深奥之外, 还有着以精美图像设计而成、个性丰富的角色们与以世界各地为主题的球场, 以及能让所有人热血沸腾的全新模式等等,是本系列的全新力作!
ToHeart
暂无评分
SteamToHeart
2025年6月26日 19时 ~ 攻略中
已累计游玩5个月2天
AQUAPLUS推出的“温暖人心的校园恋爱游戏”将以高清全3D形式焕新归来!
fault - StP - LIGHTKRAVTE
暂无评分
Steamfault - StP - LIGHTKRAVTE
2025年5月29日 20时 ~ 攻略中
已累计游玩6个月
全球累计销量超过50万份的“fault”系列最新作!故事的舞台是一个融合了奇幻与科幻的超前世界——卢森海德王国。本作讲述了生活在此地的一个平凡又平庸的究极普通市民——名为果子的少年的故事。
PSN奖杯卡

PSN奖杯卡

归档
赞助商广告

通过BorgBackup自动化备份网站到远程服务器

作者:广树时间:2024-03-18 21:16:37分类:服务器

BorgBackup(或简称为 Borg)是一个开源的、去重的、压缩的、加密的备份程序。它提供了高效、安全的方式来备份数据。

此次是以两台服务器之间进行文件备份为场景,简单的记录一下BorgBackup自动化备份网站的过程。


A为网站服务器,B为备份用的服务器。

B服务器前提:防火墙开放SSH端口给A服务器。


AB服务器安装BorgBackup

sudo apt-get update
sudo apt-get install borgbackup


B服务器创建一个用户

sudo adduser backupuser


B服务器创建一个repo

borg init --encryption=repokey /path/to/repo

这里以repokey为例,此时会要求设定密码。


A服务器设置SSH密钥对

ssh-keygen

因为是自动化需要,这个密钥对不设置密码。


将 A 服务器的公钥复制到 B 服务器

ssh-copy-id backupuser@B服务器域名或者IP

输入前面B服务器的backupuser的密码。


配置sh脚本

#!/bin/bash
# 启动 ssh-agent
eval "$(ssh-agent -s)"

# 添加你的私钥到 ssh-agent
ssh-add /root/.ssh/id_rsa

# 定义备份源和目标
SOURCE="/A/path/to/repo"
TARGET="[email protected]:/path/to/repo"

# 设置 BORG_PASSPHRASE 环境变量,Borg 将使用这个变量作为密码
export BORG_PASSPHRASE='xxxxxxxxxxx'

# 使用 Borg 创建新的备份,exclude 排除文件夹
borg create --exclude '/A/excludePath' "${TARGET}::{now:%Y%m%d%H%M%S}" "${SOURCE}"

# 删除 30 天前的备份,防止空间不足
borg prune -v --list --keep-within 30d "${TARGET}"


打开当前用户的 crontab 文件

crontab -e


添加一行来定义你的 cron 任务

0 1 * * * /path/to/your/script.sh

例如,如果你想要每天凌晨 1 点运行你的脚本

请注意,你的 sh 脚本需要有执行权限。你可以使用 chmod 命令来给它添加执行权限:

chmod +x /path/to/your/script.sh


从B服务器提取备份文档并打包成zip

borg extract --strip-components 3 /path/to/repo::my-backup

在 borg extract 命令中,--strip-components 选项用于移除从备份中提取的文件路径的前缀部分。这个选项的参数是你想要移除的路径组件的数量。

例如,假设你的备份中有一个文件,其路径为 /www/wwwroot/test/myfile.txt。如果你使用 --strip-components 3,那么在提取备份时,这个文件的路径将变为 myfile.txt。这是因为 --strip-components 3 移除了路径的前三个组件,即 /www/、wwwroot/ 和 test/。

然后可以通过指令压缩成zip文件

zip -r backup.zip .


同理也可以直接在A服务器拉取档案

eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa && export BORG_PASSPHRASE='xxxxxxxxxxx' && borg extract ssh://[email protected]:/path/to/repo::my-backup /path/to/restore


donate.png


telegram banner (1).png


1210 x 50(蓝底).png

cloudcone