[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. 定时不输出日志,保持系统干净无垃圾。
相关推荐
SkyWalking中文站11 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
姚不倒11 小时前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
pt104312 小时前
网络自动化Python课程:Cisco PyATS网络自动化测试框架
运维·自动化
小袁拒绝摆烂13 小时前
Jenkins部署经验
运维·jenkins
刚入门的大一新生14 小时前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹14 小时前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker14 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
OsDepK14 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
醉颜凉15 小时前
网络安全必学:粘性MAC地址(Sticky MAC)原理与应用全解析
运维·服务器·网络·安全·web安全
不懂的浪漫15 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库