[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. 定时不输出日志,保持系统干净无垃圾。
相关推荐
難釋懷12 分钟前
Nginx自签名-图形化工具 XCA
运维·nginx
迷枫7121 小时前
DM8 目录结构与常用排查入口梳理
服务器·数据库
志栋智能2 小时前
小步快跑:从单一场景开启超自动化巡检之旅
运维·网络·人工智能·自动化
AugustRed2 小时前
Linux 运维常用命令大全(超全速查表)
运维·网络·php
weixin_394758032 小时前
CRMEB 会员电商系统PRO系统安装之宝塔安装教程-新手推荐(软件管理)
服务器·阿里云
Plastic garden3 小时前
Docker(1)
运维·docker·容器
s_w.h3 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash
songjxin3 小时前
Nginx 日志分析可视化面板
运维·nginx
专注VB编程开发20年3 小时前
安卓APP与服务器通讯技术,文件传输和文字消息收发
运维·服务器
Agent手记4 小时前
电信运营商如何用AI实现携号转网自动处理?基于实在Agent的业务自动化落地与TARS大模型解析方案
运维·人工智能·ai·自动化