前言
gitlab自带的备份功能做不到实时备份,为了尽可能减少意外情况导致的丢失数据,需要实时备份数据。备份的大头主要是两部分,数据库和代码库。
数据库由DBA配置主备。后续补充说明备份过程.....
代码库经过测试,通过lsyncd同步repo仓库是可行的。
Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具。
接下来主要讲一下lsyncd的配置及使用方法:
配置
一、安装rsync:
lsyncd基于rsync,且要求rsync >= 3.1,默认安装 yum install -y rsync,可输入rsync --version查看当前版本,如果不符合要求,按照以下方法升级rsync版本,两台服务器A/B均要安装rsync。
#如果版本太低,直接卸载
yum -y remove rsync
#下载rsync源码
#解压
tar -zxvf rsync-3.1.2.tar.gz
#进入目录
cd rsync-3.1.2
#编译安装
./configure
make install
#查看是否升级成功
rsync --version
二、配置免密码登录
如果想要将A的数据同步到B,A必须拥有免密码登录B的权限,可以设置密钥登录来完成。只需要两条命令即可,下面的命令在A服务器执行:
#生成密钥文件
ssh-keygen -t rsa
#将公钥拷贝到B
ssh-copy-id root@192.168.1.20
#测试
ssh root@192.168.1.20
如果服务器不是使用的22作为SSH端口,需要-p参数指定端口号。
三、安装lsyncd并配置
安装:
yum install -y lsyncd
安装完成后配置文件位于/etc/lsyncd.conf,会看到如下的内容,其中--是注释符。
vim /etc/lsyncd.conf修改配置文件
继续输入命令lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况检查修改如果没有报错即可启动lsyncd。
启动命令
systemctl start lsyncd
查看lsyncd状态
systemctl status lsyncd
设置开机自启动
systemctl enable lsyncd。
问题:
lsyncd 启动错误 lsyncd error terminating since out of inotify watches
是因为由于仓库文件数量通常较多,往往需要修改inotify的监控数量上限,修复使用
echo 5000000 > /proc/sys/fs/inotify/max_user_watches
参考
官网开源地址
https://github.com/axkibe/lsyncd
官网配置手册