[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. 定时不输出日志,保持系统干净无垃圾。
相关推荐
CN_HW4 分钟前
Nginx 流量镜像配置文档-双轨国产化
服务器·前端·网络
猫老板的豆15 分钟前
git实战
git
java_logo19 分钟前
5 分钟共享打印机:用 Docker 一键部署 CUPS
运维·docker·容器·cups·网络打印机·共享打印机·docker部署cups
Macbethad30 分钟前
基于TwinCAT的半导体刻蚀设备SCADA管理程序技术方案
运维·网络·数据库
风曦Kisaki1 小时前
# Linux实战笔记-HIS项目实战Day01:版本控制与Git基础
linux·笔记·git
刘马想放假1 小时前
生成树协议 STP、RSTP、MSTP 分析:二层环网如何既冗余又不环路
运维·网络协议
zhz52141 小时前
Nginx + OpenSSL 自签名证书配置:优劣总结
运维·nginx
jsons12 小时前
rocky8内网离线批量补丁(你之前搭建的架构,多台服务器首选,无订阅)
linux·运维·服务器
进击切图仔2 小时前
SAM3 微调标注流水线和 Label Studio
java·服务器·前端
Bomangedd2 小时前
NSK RA25BN 滚子直线导轨技术详解
运维·服务器·经验分享·规格说明书