注:本篇介绍的是单向同步,即A文件同步到B,但B的文件不同步到A,双向同步的在下一篇文章中。

rsync与inotify不再赘述,直接进入实战。

0、背景

两台服务器IP地址分别为:

源服务器:192.168.43.159

目标服务器:192.168.43.231

同步方向:从源服务器(192.168.43.159)的/root/test目录下的所有对文件的增删改实时同步到目标服务器(192.168.43.231)的/root/www_bak/目录下,但反向不同步。

源服务器下需要安装rsync和inotify,目标服务器仅需安装rsync,源服务器做为server端,实时的向目标服务器client端发送数据

一、源服务器配置

1、

先查看本机是否已安装rsync

查看命令rpm -qa |grep rsync

下载好安装包后进入到安装包并增加安装后缀,安装到/usr/local/rsync路径下

[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@nginx rsync-3.0.9]# make
[root@nginx rsync-3.0.9]# make install

注:安装路径非常重要,后续要启动rsync服务必须使用该目录下的文件 

2、设置密码文件

[root@nginx rsync-3.0.]# cd /usr/local/rsync/
[root@nginx rsync]# echo "rsyncpwd" >/usr/local/rsync/rsync1.passwd

当然你也可以手动 通过 vim 编辑该文件,指定密码为rsyncpwd

给与权限600,不然会报错

[root@nginx rsync]# chmod  rsync1.passwd

3、安装inotify

先查看服务器是否支持inotify

ll /proc/sys/fs/inotify

如果有以下3个文件,那么即支持安装inotify

#安装inotify
cd /usr/src/
wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify ##该安装位置非常重要,因为安装完inotify文件后需要调用路径下的inotifywait文件
make make make install

4、创建监控与同步脚本

其功能就是:从源服务器(192.168.43.159)的/root/test目录下所有的文件无论是添加、修改、删除文件,能够通过inotify监控到,并通过rsync实时同步到目标服务器(192.168.43.231)的/root/www_bak/目录下。

该脚本要放置在被监控的路径下,如本次被同步路径为/root/test/

vim /root/test/rsync1.sh

#!/bin/bash
host=192.168.43.231
src=/root/test/
des=web
user=webuser
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib $src | while read files
do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync1.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log >&
done

host:目标服务器IP;  src:被同步的本地路径;  des:同步模块名,目标服务器必须一致 ;user:认证用户名,目标服务器的密码文件必须是这个

注意点:其中的/usr/local/inotify/bin/inotifywait 路径在上述inotify安装路径下找到;/usr/local/rsync/rsync1.passwd路径在上述的密码文件路径下找到。

修改权限,给与764权限

[root@nginx tmp]# chmod  rsync1.sh

二、目标服务器安装配置

1、目标服务器也需要安装rsync,和源服务器一样。

2、建立密码文件:

[root@nginx rsync-3.0.]# cd /usr/local/rsync/
[root@nginx rsync]# echo "webuser:rsyncpwd" >/usr/local/rsync/rsync2.passwd

同样要给此文件一个600的权限

chmod 600 /etc/rsync2.passwd

注:在源服务器建立的密码文件,只有密码,没有用户名;而在目标服务器里建立的密码文件,用户名与密码都有。

3、编辑rsync监控文件

本次监控文件放置在rsync的安装路径下/usr/local/rsync

vim /usr/local/rsync/rsync2.conf

uid = root
gid = root
use chroot = no
max connections =
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[web]
path = /root/www_bak/
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 192.168.43.159
hosts deny = *
list = false
uid = root
gid = root
auth users = webuser
secrets file = /usr/local/rsync/rsync2.passwd

三、启动服务

a、源服务器启动监控与同步:

sh   /root/test/rsync1.sh &

b、目标服务器启动 rsync监控

/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync2.conf

四、测试同步

Centos7 rsync+inotify两台服务器同步文件(单向)的更多相关文章

  1. Centos 6.5 rsync+inotify 两台服务器文件实时同步

    rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源 ...

  2. rsync配置两台服务器之间的文件备份(同步)

    rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两 ...

  3. CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹

    简介:rsync是用来同步文件和文件夹的,inotify是用来实现监听变动而自动同步的 OS:Centos7.3 服务器端:172.16.13.157 客 户 端  :172.16.13.156 目  ...

  4. linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)

    inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm

  5. centos7安装rsync及两台机器进行文件同步

    安装及配置 yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service ...

  6. rsync+inotify安装配置 实时同步文件

    安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [root@localhost ~]# inotifywa ...

  7. linux两台服务器之间文件/文件夹拷贝

    跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹---------------------------------------------- 把当前文件夹t ...

  8. ftp 两台服务器传输文件 apache

    import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputS ...

  9. linux下两台服务器文件实时同步方案设计和实现

    inux下两台服务器文件实时同步方案设计和实现 假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器  有目录 /opt/test/ 192.168.0.2 目标服务器  有目录 /o ...

随机推荐

  1. P4710 平抛运动

    题目:https://www.luogu.org/problemnew/show/P4710 $$ v_x = v_{x_0} = v \ sin \ \theta, \  v_y = v_{y_0} ...

  2. python 顺序执行任务

    #!/usr/bin/python import os import time start_command="sh start-etl.sh " es_mac_confPath = ...

  3. 刷题62. Unique Paths

    一.题目说明 题目62. Unique Paths,在一个m*n矩阵中,求从左上角Start到右下角Finish所有路径.其中每次只能向下.向右移动.难度是Medium! 二.我的解答 这个题目读读题 ...

  4. 【网寻】mui - 点击事件

    //本来是需要这样的,结果点击无响应 $(".mui-control-item").on("click",function(event){ alert(1) } ...

  5. Docker将自己的镜像发布到个人私有仓库

    Docker将自己的镜像发布到个人私有仓库 1.注册dockerhub账户 docker提供了一个类似于github的仓库dockerhub, 网址https://hub.docker.com/需要注 ...

  6. 剑指offer第二版速查表

    3.数组中重复数字:每个位置放置数字与下标对应相等 O(n) 4.二维数组中的查找:右下角开始比较 O(m+n) 5.替换空格:python直接替换 6.从尾到头打印链表: 借助栈或直接利用系统调用栈 ...

  7. 机器学习之SVM多分类

    实验要求数据说明 :数据集data4train.mat是一个2*150的矩阵,代表了150个样本,每个样本具有两维特征,其类标在truelabel.mat文件中,trainning sample 图展 ...

  8. win10上安装mysql8(installer方式)并创建用户开启远程连接

    1.进去mysql官网,下载mysql安装工具: 2.运行下载的mysql-installer-community-8.0.17.0.msi,一次往下执行就好了,以下是几个注意的点: 后面还有个地方就 ...

  9. 关于and 和or的执行优先级问题分析

    题目:列出本店价低于60或者高于100.并且商品点击数大于628的商品. 按照下面两种写法,得到的结果是不同的. 第一种:结果数据中有点击数为628的记录,显然不符合题目要求. SELECTgoods ...

  10. Spring Boot项目中各配置文件的对比

    application.properties是Spring Boot的全局配置文件,放在src/main/resources目录下或者类路径的/config下,作用是对一些默认配置的配置值进行修改. ...