rsync和inotify实时同步

本文介绍如何利用inotify和rsync实现文件的实时同步,包括配置内核参数、安装inotify-tools、编写同步脚本及密钥验证等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.inotify作用:内核模块,监控文件和目录的变化,通过inotify-tools工具提供inotify-wait(持续监控)和inotify-watch(短期监控)两个模块进行监控;

2.优化内核参数:

max_queued_events ##最大的时间列队

max_user_instances ##最大的实例

max_user_watchs ##最大的监控文件数量

注:实时同步是基于监控文件的,所以需要在文件所在端,并且rsync只能在发起端发出;

总结:实时同步只能处理上行,不能实现下行;

3.inotify+rsync实时同步案例:上行同步

a.安装inotify-tools;发起端192.168.100.150

tar  zxvf  inotify-tools-*.tar.gz  -C  /usr/src/

cd  /usr/src/inotify-tools-*/

./configure  &&make &&make  install

ls  /usr/local/bin/inotify*

b.inotify的使用:发起端192.168.100.150

vi  /etc/sysctl.conf

  fs.inotify.max_queued_events = 16384    ##监控事件队列数

  fs.inotify.max_user_instances = 1024    ##监控实例数

  fs.inotify.max_user_watches = 1048576  ##监控的文件数量

:wq

sysctl  -p

c.测试inotify命令;发起端192.168.100.150

    mkdir /root/data

    inotifywait -mrq  -e  modify,create,attrib,move,delete  /root/data  

报错解决方法:

inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory

解决方法:

32位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0

64位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

选项注解:-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化

d.编写脚本:发起端192.168.100.150

vi  rsync_inotify.sh    ##实时同步脚本

  #!/bin/bash

  RSYNC="rsync -avzH /root/data/ root@192.168.100.151:/tmp/ --delete"

  INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /root/data/"

  $INT_CMD |while read DIRECOTRY EVENT FILE;do

  $RSYNC

  done

:wq

chmod  +x  rsync_inotify.sh

rsync_inotify.sh  &  ##启动脚本

e.生成密钥对;发起端192.168.100.150

    ssh-keygen -t rsa

ssh-copy-id root@192.168.100.151

f.测试验证,发起端创建测试文件。发起端192.168.100.150

cd /root/data

touch 1.txt

g.备份源验证文件是否同步;备份端192.168.100.151

    ls /tmp/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值