使用Lsyncd同步本地文件夹

场景

    主机挂载了分布式文件系统,由于需要更换分布式文件系统,需要将分布式文件系统内2T的数据拷贝到主机本地,并实现增量同步。试了几种工具,感觉还是lsyncd最简单,最适合本地文件夹之间的增量同步,甚至可以做到实时同步。

具体步骤

    1.安装lsyncd,修改inotify触发机制监控的文件数。

yum install lsyncd
echo fs.inotify.max_user_watches=50000000 >> /etc/sysctl.conf
sysctl -p

    如果fs.inotify.max_user_watches值不够大,会报错:

Fri Aug 14 15:06:27 2020 Error: Terminating since out of inotify watches.
Consider increasing /proc/sys/fs/inotify/max_user_watches

    2.编辑/etc/lsyncd.conf,内容如下:

settings {
    statusFile = "/var/log/lsyncd/lsyncd.stat",
    statusInterval = 1,
    logfile ="/var/log/lsyncd/lsyncd.log",
}

sync{
    default.rsync,
    source = "/src",
    target = "/dst",
    delay = 300,
    rsync = {
        bwlimit = 512,
    }
}

    整个配置文件分为两部分,settings为全局变量,可以有多个sync,sync之间是互相独立的,每个sync都有不同的源或目的文件夹。
    statusFile记录了Inotify和具体同步的文件夹。sync有那么几种模式,本地文件夹之间同步可以选择default.direct或default.rsync。delay=300表示当src文件夹内容进行了修改,300秒之后开始同步到dst文件夹,delay值默认是15秒,可以根据需求调整。bwlimit=512表示同步的最大带宽为512kb/s,这是rsync的一个参数,所以被包含在rsync内。
    3.创建文件夹/var/log/lsyncd,/dst。
    4.启动lsyncd。

注意

    如果数据量很大,比如T级,lsyncd的启动时间会比较长,如下图日志所示,等了半小时才开始同步数据。最后,对于这种工具,根据工作需要即学即用就行。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值