写点什么

lsyncd 实现文件实时同步

用户头像
阿呆
关注
发布于: 3 小时前
lsyncd实现文件实时同步

最近遇到个需求,需要做文件的实时同步,用于备份 gitlab 的数据,调研后,打算使用 lsyncd 来做。


安装

1. rpmrpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyum install lsyncd

2. 源码安装yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto -ytar xf lsyncd-2.2.2.tar.gzcd lsyncd-2.2.2cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncdmake && make install
复制代码

配置(/etc/lsyncd.conf)

settings {logfile ="/data/log/lsyncd/lsyncd.log",statusFile ="/data/log/lsyncd/lsyncd.status",inotifyMode = "CloseWrite", #inotify监控的时间maxProcesses = 10, #同时最大起的rsync进程数,一个rsync同步一个文件}
sync {default.rsync,source = "/data/gitlab_online/git-data", #源目录,路径使用绝对路径target = "/mnt/gitlab_online/git-data", #目标目录maxDelays = 50, #统计到多少次监控事件即开始一次同步delay = 60, #若60s内未触发50次监控事件,则每60s同步一次delete = true, #rsync 是否启用--deletersync = {binary ="/usr/bin/rsync", #rsync可执行文件archive = true, #保持文件所有属性compress = true, #压缩传输,是否开启取决于带宽及cpubwlimit =5000 #限速 kb/s-- rsh ="/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" #可指定端口}}
复制代码

启动服务

systemctl start lsyncd 
复制代码

注意事项

1、由于同步的是 gitlab 的数据,所以需要将目标文件夹的用户改成 gitlab,命令为:

chown -R gitlab 目录
复制代码

2、设置 inotify 的最大监控文件数,注意:重启系统后会失效,需要重新设置

echo 10008192 > /proc/sys/fs/inotify/max_user_watches
复制代码

修改后执行

systemctl restart lsyncd
复制代码


参考链接


发布于: 3 小时前阅读数: 4
用户头像

阿呆

关注

坚守准则,认真做事。 2018.05.22 加入

还未添加个人简介

评论

发布
暂无评论
lsyncd实现文件实时同步