`

rsync远程文件同步部署(inotify)

 
阅读更多
  • rsync概述
  • rsync部署
  • 使用rsync文件同步工具
  • rsync常见用法
  • 结合inotify实时远程同步
  • sersync实时同步

 

一、rsync概述

 

rsync是一个快速的文件同步和传输工具,rsync程序类似于rcp命令的工作模式,但是拥有更强的特性,rsync使用rsync远程更新协议,根据效验和搜索的算法仅传输新增或更改过的文件,并且支持数据压缩,从而大大提高了文件同步的速度。

 

 

二、rsync部署

 

  1. 环境说明
  2. 配置网络通讯
  3. 建立配置文件
  4. 启动rsync服务

 

1.环境说明

 

rsync server 主机

主机名   :server

IP地址   :172.20.45.35

操作系统:centos 5.6

 

rsync client 主机

主机名   :client

IP地址   :172.20.45.38

操作系统:centos 5.6

 

 

2.配置网络通讯

 

关闭iptables防火墙

 

登录server

# service iptables stop
# chkconfig iptables off

 

登录client

# service iptables stop
# chkconfig iptables off

 

 

关闭SElinux

 

登录server

# vi /etc/selinux/config
SELINUX=enforcing
更改为
SELINUX=disabled

 

至此reboot重启serve主机。

 

 

登录client

# vi /etc/selinux/config
SELINUX=enforcing
更改为
SELINUX=disabled

 

至此reboot重启client主机。

 

 

更改hosts文件

 

登录server

# vi /etc/hosts
增加
172.20.45.35    server
172.20.45.38    client

 

登录client

# vi /etc/hosts
增加
172.20.45.38    client
172.20.45.35    master

 

 

3.建立配置文件

 

系统安装完毕后默认安装rsync软件包

 

登录server

# rpm -qa | grep rsync
rsync-3.0.6-4.el5_7.1

 

登录client

# rpm -qa | grep rsync
rsync-3.0.6-4.el5_7.1


但默认rsync程序配置文件rsyncd.conf文件是不存在的,需要手动创建。

 

 

登录server

# touch /etc/rsyncd.conf
# vi /etc/rsyncd.conf
增加
uid = root  #授权用户
gid = root  #授权组
log file = /var/log/rsyncd.log #log文件路径
pid file = /var/run/rsyncd.pid #pid文件路径

[rsync]  #同步名称
path = /rsync  #同步文件夹路径
read only = no #不使用只读模式
ignore errors = yes #忽略IO错误
hosts allow = 172.20.0.0/22  #只运行172.20.0.0网段访问
hosts deny = *  #拒绝所有网段访问

 

 

4.启动rsync服务

 

登录server

启动rsync服

# rsync --daemon
# ps -ef | grep [r]sync
root      2612     1  0 11:37 ?        00:00:00 rsync --daemon

 

开启启动rsync服务

# echo "/usr/bin/rsync --daemon &" >> /etc/rc.local

 

 

三、使用rsync文件同步工具

 

将远程主机的备份源目录同步到本地,称为下载同步,将本地的备份源目录同步到远程主机中,称为上传同步。

rsync也可用与本地目录直接的同步。

 

使用rsync文件同步时,命令格式如下

rsync [选项]  备份源 备份目标

 

常用选项

-a            使用归档模式,保留文件原有的权限、属性、属主等信息,等同于使用“-rlptgoD”等多个选项的组合

-l              符号链接文件仍然复制为符号链接

-H             保留硬链接文件

-r              递归模式,包含目录及子目录中所有文件

-v               显示同步过程的详细信息

-z               在传输过程中进行压缩

-o              保留文件的属主标记

-g              保留文件的属组标记

-t               保留文件的时间标记

-p               保留文件的权限标记

-D              保留设备文件以及其他的特殊文件

--delete       删除目录文件夹有而源文件夹没有的文件

--checksum  根据效验和来决定是否跳过文件

 

 

四、rsync常见用法

 

登录client

 

查看rsync server服务器可用的备份模块列表

# rsync rsync://172.20.45.35
rsync          

 

将rsync server服务器中rsync目录同步至本地

# rsync -vzrtopg root@172.20.45.35::rsync /rsync/
receiving incremental file list
./
1/
2/
3/

sent 42 bytes  received 99 bytes 

 

 

五、结合inotify实时远程同步

 

  1. 安装inotify
  2. 部署client rsync服务
  3. ssh验证
  4. 开启实时同步
  5. 验证实时同步

 

注意:linux内核2.6.13版本以后提供inotify。

 

inotify用于监控文件系统事件,如文件存取、删除、移动、修改等。

 

1.安装inotify

# tar zxvf inotify-tools-3.13.tar.gz
# cd inotify-tools-3.13
# ./configure –prefix=/usr/local/inotify
# make
# make install

 

 

2.登录client部署rsync

 

登录client

# touch /etc/rsyncd.conf
# vi /etc/rsyncd.conf
增加
uid = root  
gid = root  
log file = /var/log/rsyncd.log 
pid file = /var/run/rsyncd.pid 

[rsync]  
path = /rsync  
read only = no 
ignore errors = yes 
hosts allow = 172.20.0.0/22  
hosts deny = *  

 

开启rsync

# rsync --daemon
# ps -ef | grep [r]sync
root      2612     1  0 11:37 ?        00:00:00 rsync --daemon

 

 

3.ssh认证

 

登录server

# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
7c:1f:b4:8b:2e:9c:55:94:a8:f3:9c:1a:c8:0d:6b:54 root@server

 

将文件copy至client,以后再server上rsync client就不需要输入密码

# scp -p /root/.ssh/id_rsa.pub root@172.20.45.38:/root/.ssh/authorized_keys
root@172.20.45.35's password: 
id_rsa.pub       
[root@server opt]# ssh client
Last login: Fri Aug 23 13:36:12 2013 from master
[root@client ~]# exit
logout

 

验证rsync是否需要密码

# rsync -azH --delete /rsync/ root@172.20.45.38:/rsync
#

 

4.开启实时同步

 

登录server

使用inotify监控/rsync目录

# inotifywait -mrq -e modify,create,attrib,move,delete /rsync

 

新开窗口进行测试操作,新建三个目录a、b、c观察inotifywait显示

# mkdir a b c

inotify显示
/rsync/ CREATE,ISDIR a
/rsync/ CREATE,ISDIR b
/rsync/ CREATE,ISDIR c

 

证明inotify监控成功。

 

设定实时同步脚本

# vi /root/InotifyRsync.sh 
增加
#!/bin/bash

/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib /rsync | while read file
        do
                rsync -avzP --delete /rsync/ root@172.20.45.38::rsync  > /dev/null
         done
exit 0

 

开启实时同步

# /root/InotifyRsync.sh &

 

 

5.验证实时同步

 

登录server

# cd /rsync
# rm -rf *
# mkdir a b c
# rm -rf c

 

登录client

# cd /rsync
# ls
a b

 

实时同步成功。

 

 

六、sersync实时同步

 

sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。

是一款非常好用的实时同步软体、配置简单,功能强大,具体请至sersync官网。

 

http://code.google.com/p/sersync/

 

至此、完成。

分享到:
评论

相关推荐

    rsync+inotify开机自启动实时同步增量备份

    rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...

    服务器目录实时同步部署手册_rsync.docx

    《服务器目录实时同步部署手册——基于rsync与inotify》 在现代的IT环境中,保持数据的一致性和可用性至关重要。对于多服务器架构,实时文件同步成为了一个必要且高效的解决方案。本文将详细介绍如何利用rsync和...

    rsync+inotify.zip

    2. 支持本地和远程同步:可以通过本地文件系统或者SSH、RSH等协议进行跨主机同步。 3. 镜像功能:rsync可以创建源目录的精确副本,包括权限、符号链接等元数据。 4. 模式匹配:通过正则表达式或通配符,用户可以选择...

    rsync安装部署-实现数据文件同步

    此外,rsync可以结合SSH(Secure Shell)协议进行安全的远程同步,确保数据在传输过程中的安全性。 接下来,我们进入rsync的安装部署环节: 1. **在Linux系统上安装rsync**: - 对于基于Debian的系统(如Ubuntu)...

    rsync+inotif与rsync+sersync同步软件包.zip

    它支持多种同步模式,包括本地同步、远程同步以及镜像备份等。 `rsync+inotify`是`rsync`的一种增强使用方式。`inotify`是Linux内核提供的一种文件系统事件监控机制,它可以监听文件系统的变化,如创建、删除、修改...

    Centos6.3下rsync+inotify安装配置

    在 CentOS 6.3 环境中,配置文件系统实时同步更新,我们可以采用 rsync 结合 inotify 工具来实现。rsync 是一款强大的数据同步工具,它能够高效地进行本地或远程数据同步。而 inotify 是 Linux 内核提供的一种文件...

    inotify+rsync实现实时同步的方法

    rsync则是一个高效的数据同步工具,用于在本地或远程系统间同步文件。 【inotify简介】 inotify提供了一种异步、细粒度的文件系统事件监控机制。它允许应用程序实时监控文件系统的变化,而不是通过周期性的轮询...

    rsync+innotify数据同步

    结合`rsync`,`inotify`能够实现实时监测文件变化并即时同步,显著提升了数据同步的实时性和效率。 #### 安装与配置`inotify-tools` 在`inotify`功能的基础上,`inotify-tools`是一套提供高级`inotify`操作的工具...

    rsync+inotify实时同步

    rsync在远程同步中分为发起端(client)和同步源(server)。发起端负责执行同步操作,同步源则提供需要备份的文件。当rsync作为同步源运行时,通常以守护进程(daemon)模式运行,通过配置文件`/etc/rsyncd.conf`...

    4-rsync+inotify实时上行同步.docx

    为了实现实时上行同步,即将客户端的文件变化同步到服务器端,可以利用inotify监控客户端文件系统的变动,并通过rsync来同步这些变化。 1. **服务器端配置**: - **修改配置文件**: - 设置用户权限(`uid` 和 `...

    inotify+rsync、sersync 实时备份1

    - **部署rsync守护进程模式**:rsync是一种开源的、快速的、增量的数据传输工具,可以用于本地或远程的文件同步。在守护进程模式下,rsync能持续监听并接收来自inotify的同步请求。 - **部署inotify服务**:安装...

    inotify-tools-3.14.zip

    总的来说,inotify-tools和rsync的结合使用,为Linux系统提供了一种灵活、可扩展的文件同步策略,适用于各种规模的部署。通过理解这两个工具的基本原理和使用方法,我们可以根据实际需求定制出满足业务的高效文件...

    linux实时同步,自动同步

    确保替换`WATCH_DIR`为需要监控的本地目录,`SYNC_DIR`为远程同步的目标位置。运行脚本后,`inotifywait`会持续监听指定目录,任何文件的修改、创建、删除或移动都会触发`rsync`同步。 在正式环境中,你可能还需要...

    inotify-tools-3.14.tar.gz

    在文件同步场景中,Rsync是一款非常强大的工具,它能高效地进行本地或远程文件的同步。Rsync使用快速增量传输算法,仅传输文件中发生变化的部分,极大地提高了同步效率。通过结合Inotify和Rsync,我们可以实现近乎...

    linux文件同步.zip

    在Linux环境中,文件同步是一项关键任务,特别是在多服务器部署或者备份策略中。本文将深入探讨如何在两台Linux服务器之间实现文件同步,并介绍几种常用的方法和技术。 首先,我们需要理解文件同步的基本概念。文件...

    Step by Step CentOS 7系统下Rsync+Sersync实时数据同步配置

    它可以监控文件系统的变动,一旦有文件发生改变,即可通过网络快速同步到远程服务器。Sersync通常作为Rsync的前端工具使用,用于触发Rsync进行同步操作。 #### SELinux(Security-Enhanced Linux)配置 SELinux...

    linux系统中通过rsync+inotify实现网页自动同步

    通过 `inotify`,我们可以实现实时监控主服务器上文件的变动,并在文件发生变化时立即触发 `rsync` 同步操作。 以下是在主从服务器上配置 `rsync` 和 `inotify` 的步骤: 1. **在从服务器上配置 `rsync`**: - ...

    inotity+rsync配置参考

    在Linux系统中,`inotify`和`rsync`是两个强大的工具,它们结合使用可以实现文件系统的实时监控和同步。下面将详细讲解这两个工具及其配置。 `inotify`是Linux内核提供的一种文件系统事件监控机制,它可以监控文件...

Global site tag (gtag.js) - Google Analytics