基于rsync+inotify-tools 同步geo主从节点的artifacts文件

文章目录

    • [1. 背景](#1. 背景)
    • [2. 操作](#2. 操作)
      • [2.1 geo主节点查看仓库的路径](#2.1 geo主节点查看仓库的路径)
      • [2.2 安装 inotify-tools](#2.2 安装 inotify-tools)
      • [2.3 主从免密](#2.3 主从免密)
      • [2.4 编写同步脚本](#2.4 编写同步脚本)
      • [2.5 同步文件](#2.5 同步文件)
    • [3. 验证](#3. 验证)

1. 背景

由于某个repo的主从artifacts目录偏差非常严重(主节点100G,从节点10G),为了保证主从目录数据的一致性,通过rsync同步来实现。

此外,由于rsync仅仅是同步了主从节点的artifacts文件,其实际并未操作数据库,因为对数据库本身数据不会造成任何影响。

2. 操作

2.1 geo主节点查看仓库的路径

获取当前repo的hash路径:

Menu -> Admin -> Project -> Select Project-> Gitaly相对路径

eg:

Gitaly相对路径是**@hashed/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5.git**

则此项目的artifacts路径是:/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5

2.2 安装 inotify-tools

该工具可以实时监听某个目录的变化,同时触发rsync进行同步。

复制代码
yum install -y inotify-tools

2.3 主从免密

复制代码
ssh-keygen #一路回车即可
ssh-copy-id -i ~/.ssh/id_rsa.pub root@secondary_ip #输入从节点的密码即可

2.4 编写同步脚本

cd /usr/local/src/

cat inotify.sh

复制代码
HOST_IP=10.100.0.2 #从节点ip
MONITOR_DIR=/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5 #主节点上repo的artifacts目录
DES=/var/opt/gitlab/gitlab-rails/shared/artifacts/4a/44/4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5 #从节点上的目标路径
USE=root
CMD=/usr/bin/inotifywait
${CMD} -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib ${MONITOR_DIR} | while read files
do
/opt/gitlab/embedded/bin/rsync -avzP ${MONITOR_DIR}/ --delete --timeout=100  ${USE}@${HOST_IP}:$DES
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

2.5 同步文件

复制代码
cd /usr/local/src/
nohup bash inotify.sh & 
tail -f nohup.out #查看同步的文件信息

3. 验证

通过tree、du -sh等命令查看文件数量和大小。

相关推荐
东莞市云毅网络有限公司6 小时前
PDF 表格抽取的三条技术路线对比:规则、库解析与版面识别
python·sqlite·自动化运维·geo·数据监测
智搜广告18 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
daemon.qiang18 小时前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
码农学院1 天前
退货和运费政策别只藏在帮助中心:MerchantReturnPolicy 与 shippingDetails 落地实战
网络爬虫·geo·geo优化·ai优化aio·泉州geo优化
码农学院1 天前
同一台设备在 AI 眼里有三个身份:GTIN、MPN 与 SKU 标识符写法解读
geo·geo优化·ai优化aio·泉州geo优化
cxk18082721 天前
2026 GEO 优化实战指南:精采信时代昆明 AI 营销服务商选型方法论
大数据·人工智能·机器学习·geo·昆明geo
码农学院1 天前
停产的设备还在被 AI 推荐:软 404、410 状态码与结构化数据清理的排查记录
网络爬虫·geo·geo优化·ai优化aio
2601_950513592 天前
AI 搜索正在分走一部分流量:企业内容到底该往哪投
内容运营·seo·geo·ai搜索·生成式引擎优化
码农学院3 天前
门店信息三方一致性审计:站内、地图平台与 AI 回答口径差异的量化与修复前后数据
geo·geo优化·ai优化aio
东莞市云毅网络有限公司3 天前
用标准库做网页正文抽取:从 HTML 到结构化字段的轻量实现
python·sqlite·自动化运维·geo·数据监测