企业实战项目rsync+inotify实现实时同步

目录

一、inotify安装和介绍

1. 安装inotify

2. inotify-tools常用命令

3. rsync + inotify 实践

3.1 服务端配置

3.2 客户端配置


一、inotify安装和介绍

1. 安装inotify

yum install epel-release -y

yum install inotify-tools -y

2. inotify-tools常用命令

 inotify-tools 包含了两个命令:inotifywait 与 inotifywatch。

(1)inotifywait:在被监控的文件或目录上等待特定文件系统事件发生,执行后处 于阻塞状态,适合在shell脚本中使用。

(2)inotifywatch:用于收集文件系统的统计数据,例如发生了多少次 inotify 事 件,某文件被访问了多少次等等。

3. rsync + inotify 实践

部署sync+inotify同步客户端/slave目录至目标服务器的/slave/下:

3.1 服务端配置

目标服务器rsync配置,也可以使用之前的

企业实战项目rsync+inotify实现实时同步_第1张图片

创建rsync用户 

useradd -s /sbin/nologin -M rsync 

创建数据备份储存目录,目录修改属主

mkdir /slave/

chown -R rsync:rsync /slave/

创建认证用户密码文件

echo "rsync_slave:nebula123" >>/etc/rsync.passwo rd

chmod 600 /etc/rsync.password

3.2 客户端配置

客户端的认证文件只需要有密码即可

echo "nebula123" >>/etc/rsync.password

chmod 600 /etc/rsync.password

vim inotify.sh

#!/bin/bash
host=192.168.150.15
src=/slave
des=slave
password=/etc/rsync.password
user=rsync_slave
inotifywait=/usr/bin/inotifywait
$inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files;do
        rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
        echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

sh inotify.sh

开另一个终端随便创建一个文件

touch awm

 

你可能感兴趣的:(linux,运维,服务器)