[Git] 源码服务器主/备备份方案

方案架构

采用备机主动拉取模式:

  1. 业务主机定时自动压缩 Git 仓库为备份包
  2. 备机通过 Rsync 定时拉取
  3. 按星期 1~5 循环覆盖,无需手动删旧备份,长期零维护
  4. 最大限度降低业务主机 IO 与负载

前置准备

  • 主备服务器内网互通
  • 备机可 SSH 免密登录业务主机
  • 主机 Git 仓库路径固定

一、业务主机:配置 Git 仓库自动打包

1.1 主机打包脚本

主机新建脚本:/home/git_dump.sh,运行

复制代码
#!/bin/bash
# Git仓库路径
GIT_PATH="/data/git/repo"
# 备份压缩包名称
BAK_FILE="/home/gitrepo.tar.gz"

# 压缩整个Git仓库
tar -zcvf $BAK_FILE $GIT_PATH

1.2 赋予执行权限

运行

复制代码
chmod +x /home/git_dump.sh

1.3 主机定时任务 每日凌晨自动打包

运行

复制代码
crontab -e

写入

复制代码
0 0 * * * /home/git_dump.sh

每天 0 点自动把 Git 仓库压缩为 /home/gitrepo.tar.gz

二、备机配置 SSH 免密登录主机

2.1 备机生成密钥

运行

复制代码
ssh-keygen -t rsa

全程回车,不设密码。

2.2 公钥追加到主机

运行

复制代码
cat /root/.ssh/id_rsa.pub | ssh root@主机IP "cat >> /root/.ssh/authorized_keys"

2.3 验证免密

运行

复制代码
ssh root@主机IP

三、备机 Rsync 拉取备份脚本

备机新建:/root/git_backup.sh,运行

复制代码
#!/bin/bash
# 业务主机IP
MASTER_IP="192.168.x.x"
# 获取星期 1~5
WEEK=$(date +%u)

# 拉取主机备份包,按星期后缀覆盖
rsync -av root@$MASTER_IP:/home/gitrepo.tar.gz  /home/gitrepo.tar.gz.$WEEK
# 如有第二个备份包同理
rsync -av root@$MASTER_IP:/home/gitrepo2.tar.gz /home/gitrepo2.tar.gz.$WEEK

3.1 加执行权限

运行

复制代码
chmod +x /root/git_backup.sh

四、备机定时任务

运行

复制代码
crontab -e

周一至周五早 6 点拉取,无日志输出,运行

复制代码
0 6 * * 1-5 /root/git_backup.sh

五、备份文件规则

备机 /home 自动生成循环覆盖:

  • gitrepo.tar.gz.1 周一
  • gitrepo.tar.gz.2 周二
  • gitrepo.tar.gz.3 周三
  • gitrepo.tar.gz.4 周四
  • gitrepo.tar.gz.5 周五

六、测试方法

6.1 主机手动测试打包

运行

复制代码
/home/git_dump.sh

6.2 备机手动测试拉取

运行

复制代码
/root/git_backup.sh

6.3 查看定时执行

运行

复制代码
tail -f /var/log/cron

七、注意事项

  1. Rsync 只用 -av,内网不需要 -z 压缩。
  2. 禁止加 --delete,避免误删本地备份。
  3. 免密配置必须用 >> 追加,不能用 > 覆盖。
  4. 主机 Git 仓库路径按实际修改脚本里 GIT_PATH
  5. 定时不输出日志,保持系统干净无垃圾。
相关推荐
tedcloud12318 分钟前
OpenShip 部署指南:开源 AI 应用快速启动模板 Linux 搭建实践
linux·运维·服务器·人工智能·开源
微学AI34 分钟前
内网穿透的应用-服务器日志出现异常怎么办?Python监控、钉钉告警与远程处理教程
服务器·python·钉钉
土星云SaturnCloud9 小时前
边缘侧大模型部署的新利器——国科环宇GK 300I大模型一体机深度评测与架构解析
服务器·人工智能·ai·边缘计算
晚风吹长发9 小时前
Docker基础——Docker Network(网络详解)
linux·运维·网络·ubuntu·docker·容器
Cx330_FCQ9 小时前
Tmux使用
服务器·git·算法
高磊200511 小时前
LVS(Linux virual server)
linux·服务器·lvs
LedgerNinja11 小时前
WEEX API 自动化交易实践:下单、撤单、订单查询与状态闭环
运维·自动化
山峰哥12 小时前
数据库性能救星:Explain执行计划深度拆解
服务器·开发语言·数据库·sql·启发式算法
执笔画流年呀12 小时前
Linux搭建Java项目部署环境
java·linux·运维
Dory_Youth12 小时前
联想笔记本电脑失灵
运维·笔记·电脑