测试环境:

资源服务器(主服务器):192.168.200.95

备份服务器(客户端):192.168.200.89

同步目录:/etc/test

同步时使用的用户名hadoop密码12345

实验目的:资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端。

一、资源服务器配置

1、安装rsync,安装路径为:/usr/local/rsync

[root@nginx ~]# cd /usr/src/

[root@nginx src]# wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz

[root@nginx src]# tar zxvfrsync-3.0.9.tar.gz

[root@nginx src]# cd rsync-3.0.9

[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

2、建立密码文件

#vi /etc/rsync.pas

12345

#cd /etc

#chmod 600 rsync.pas

3、安装inotify,安装路径/usr/local/inotify

[root@nginx rsync]# cd /usr/src/

[root@nginx src]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

[root@nginx src]# tar zxvf inotify-tools-3.14.tar.gz

[root@nginx src]# cd inotify-tools-3.14

[root@nginx inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify

[root@nginx inotify-tools-3.14]# make

[root@nginx inotify-tools-3.14]# make install

4、创建自动同步脚本autorsync.sh

放在同步目录下

脚本文件放在同步目录下autorsync.sh

vi autorsync.sh

#!/bin/bash

host=192.168.200.89

src=/etc/test

des=backup

user=hadoop

/usr/local/inotify/bin/inotifywait -mrq--timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e

modify,delete,create,attrib $src \

| while read files

do

/usr/bin/rsync -vzrtopg --delete --progress--password-file=/etc/rsync.pas $src $user@$host::$des

>>/var/log/rsyncprogress.log2>&1 &&

echo "${files} was rsynced">>/var/log/rsync.log 2>&1

done

给予764权限

#chmod 764 rsync.sh

5、运行这个脚本

#sh /tmp/rsync.sh &

我们还可以把autorsync.sh脚本加入到开机启动项里

#echo "/etc/test/autorsync.sh" >> /etc/rc.local

二、备份服务器配置

1、安装rsync,安装路径为:/usr/local/rsync

[root@nginx ~]# cd /usr/src/

[root@nginx src]# wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz

[root@nginx src]# tar zxvfrsync-3.0.9.tar.gz

[root@nginx src]# cd rsync-3.0.9

[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

2、建立密码文件

#vi /etc/rsync.pas

hadoop:12345

#cd /etc

#chmod 600 rsync.pas

3、配置/etc/rsyncd.conf

uid = root

gid = root

use chroot = no

max connections = 4

strict modes =yes

port = 873

[backup]

path = /etc/

comment = This is a test

read only = yes

list = no

auth users = hadoop

secrets file = /etc/rsync.pas

hosts allow = 192.168.200.95

#transfer logging = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

注意:path = /etc/ 是同步目录的上一级

4、启动rsync

# /usr/local/rsync/bin/rsync --daemon--config=/etc/rsyncd.conf

我们可以把rsync脚本加入到开机启动项里

# echo "/usr/local/rsync/bin/rsync--daemon --config=/etc/rsyncd.conf" >> /etc/rc.local

rsync+inotify 实现资源服务器的同步目录下的文件变化时,备份服务器的同步目录更新,以资源服务器为准,去同步其他客户端的更多相关文章

  1. java利用WatchService实时监控某个目录下的文件变化并按行解析(注:附源代码)

    首先说下需求:通过ftp上传约定格式的文件到服务器指定目录下,应用程序能实时监控该目录下文件变化,如果上传的文件格式符合要求,将将按照每一行读取解析再写入到数据库,解析完之后再将文件改名. 一. 一开 ...

  2. Python 读取某个目录下的文件

    读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt im ...

  3. C# 获取指定目录下所有文件信息

    /// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...

  4. [转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    原文:http://blog.csdn.net/vchao13/article/details/6200255 1.获取指定目录下所有文件信息 /// <summary> /// 返回指定 ...

  5. socket实现两台FTP服务器指定目录下的文件转移(不依赖第三方jar包)

    通过socket实现两台FTP服务器指定目录下的文件转移,其中包含了基础了ftp文件列表显示.上传和下载.这里仅供学习用,需掌握的点有socket.ftp命令.文件流读取转换等 完整代码如下: Ftp ...

  6. SpringBoot读取资源目录下的文件

    需要读取resources目录下的文件,那么方法如下: 假设在资源目录下的template目录下有一个文件a.txt,获取到文件流的方式 InputStream stream = this.getCl ...

  7. FlashFXP链接到服务器上,如果www目录下的文件隐藏

    FlashFXP链接到服务器上,如果www目录下的文件隐藏,那么请按照如下设置,就可以显示隐藏的文件了 [站点]->[站点管理器]->选项,然后按照如下设置:

  8. [转帖]/proc/sys目录下各文件参数说明

    /proc/sys目录下各文件参数说明 https://blog.csdn.net/luteresa/article/details/68061881   一.前言 本文档针对OOP8生产环境,具体优 ...

  9. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

随机推荐

  1. 第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

    #include <iostream> #include <stdlib.h> #include <pthread.h> using namespace std; ...

  2. dtach-linux-分离功能-小工具 - 点点滴滴 Linux | 点点滴滴 Linux

    dtach-linux-分离功能-小工具 - 点点滴滴 Linux | 点点滴滴 Linux dtach-linux-分离功能-小工具 2013年05月20日 ⁄ Linux工具 ⁄ 共 1775字 ...

  3. android中设置TextView/Button 走马灯效果

    在Android的ApiDemo中,有Button的走马灯效果,但是换作是TextView,还是有一点差异. 定义走马灯(Marquee),主要在Project/res/layout/main.xml ...

  4. 关于hibernate中多对多关系

    关于多对多关系 数据库:在使用多对多的关系时,我们能够使用复合主键.也能够不使用,直接引入外键相同能够实现. 在数据库中使用多对多关系时,须要一个中间表. 多对多关系中的数据库结构例如以下: 表:Or ...

  5. Android相关

    wifi密码:因为我们安卓系统的手机无线账号数据是储存在一个文件里的,那就是 /data/misc/wifi/wpa_supplicant.conf ,这个是系统文件,权限不够高是无法访问的,而这个文 ...

  6. 移动M站建设

    电商总结(五)移动M站建设   最近在一直在搞M站,也就是移动web站点.由于是第一次,也遇到了很多问题,所以把最近了解到的东西总结总结.聊一聊什么是移动M站,它有啥作用和优势. 也有人会问,M站和A ...

  7. Android Studio使用心得 - 简单介绍与环境配置

    FBI Warning:欢迎转载,但请标明出处:http://blog.csdn.net/codezjx/article/details/38544823,未经本人允许请勿用于商业用途.感谢支持! 关 ...

  8. Knockout应用开发指南 第三章:绑定语法(3)

    原文:Knockout应用开发指南 第三章:绑定语法(3) 12   value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...

  9. SWT的文件选择对话框I的使用

    swt文件选择框 FileDialog fileselect=new FileDialog(shell,SWT.SINGLE);                          fileselect ...

  10. Linux php/php-fpm 安装,配置

    1> 下载php源代码   #wget  http://cn2.php.net/get/php-5.4.30.tar.gz/from/this/mirror   官网5.2的版本号貌似没提供   ...