rsync+inotfiy文件同步

1.部署rsync服务

yum install rsync  #安装rsync,如果嫌yum版本过低也可以源码安装

2.vim /etc/rsyncd.conf #默认rsync没有配置文件,创建一个,文件中#和汉字仅为注释,使用中请将所有注释清除

#Rsync server
uid = root
gid = root
use chroot = no # 安全相关
max connections = # 并发连接数
timeout = # 超时时间(秒)
pid file =/var/run/rsyncd.pid # 指定rsync的pid目录
lock file =/var/run/rsync.lock # 指定rsync的锁文件【重要】
log file = /var/log/rsyncd.log # 指定rsync的日志目录
ignore errors #忽略一些I/O错误
read only = false #设置rsync服务端文件为读写权限
list = false #不显示rsync服务端资源列表
hosts allow = 10.1.0.0/ #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
hosts deny = 0.0.0.0/ #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
auth users = rsync_backup #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
secrets file =/etc/rsync.password #用户认证配置文件,里面保存用户名称和密码
#################################################
[www] # 模块
comment = www
path = /data/www/
#################################################
[bbs]
comment = bbs
path = /data/bbs/
#################################################
[blog]
comment = blog
path = /data/blog/
#rsync_config____________end :wq! #保存,退出

3、创建用户认证文件

echo  "rsync_backup:123456">/etc/rsync.password  #配置密码文件

4、设置文件权限

chmod  /etc/rsync.password  

5.启动守护进程,并写入开机自启动

rsync --daemon
vim /etc/rc.local
# rsync server progress
/usr/bin/rsync --daemon

6.创建相关待同步的目录

mkdir -p /data/{www,bbs,blog}

#rsync客户端配置

1.安装rsync,方法同上
2.创建rsync配置文件,客户端创建即可,无需内容

touch  /etc/rsyncd.conf 
3.配置rsync客户端相关权限认证:

 echo "">/etc/rsync.password
chmod /etc/rsync.password
4.创建待同步数据,在客户端创建一些数据

mkdir -p /data/{www,bbs,blog}
touch /data/www/www.log /data/bbs/bbs.log /data/blog/blog.log
5.测试rsync是否同步
rsync  -avzP /data/www/ rsync_backup@172.16.1.25::www/   --password-file=/etc/rsync.password
#此步骤必须成功才能进行下一步
yum install inotify-tools #安装inotify
echo 50000000 > /proc/sys/fs/inotify/max_user_watches
echo 327679 > /proc/sys/fs/inotify/max_queued_events
6.编写inotify脚本
vim rsync.sh
[root@lb02 www]# vim /root/rsync.sh #!/bin/bash
srcdir='/data/www/'
dstdir='www'
dstip="10.1.1.250"
user=rsync_backup
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%t %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,move $srcdir | while read file
do
for ip in $dstip
do
cd $srcdir
rsync -avzP --progress --delete $srcdir $user@$dstip::$dstdir --password-file=/etc/rsync.password
echo " $file " >> /tmp/rsyncd.log >&
done
done
chmod +x rsync.sh
./rsync.sh #启动inotify
 

几种同步方法:

Rsync –anH 本地目录 远程IP:具体目录(回车之后提示输入root密码,相当于拷贝)
例如:
Rsync –avH /usr/local/src 192.168.0.2:/bak/test/  -》把src整个目录拷到test内
Rsync –avH /usr/local/src/ 192.168.0.2:/bak/test/  ->把src目录内的所有文件拷贝到test内
Rsync –anH 远程IP:具体目录  本地目录—>远程同步到本地,需要root密码
Rsync –anH rsync用户@IP::模块 本地目录  -->从服务器模块同步到本地目录
注:配置常见问题及解决办法:http://blog.chinaunix.net/uid-26569333-id-3067813.html

rsync+inotfiy文件同步的更多相关文章

  1. rsync+inotify文件同步 - 同步慢的问题

    rsync+inotify文件同步 - 同步慢的问题 我们来看网上的教程,我加了注释.(网上所有的教程基本都一模一样,尽管写法不一样,致命点都是一样的) #!/bin/bash /usr/bin/in ...

  2. rsync+inotify文件同步

    rsync+inotify文件同步 在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份 ...

  3. Linux下简单粗暴使用rsync实现文件同步备份【转】

    这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份. 一.备份服务器配置rsync文件 vim /etc/rsyncd.conf #工作中指 ...

  4. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  5. inotify配合rsync实现文件同步

    一.slave端rsync设置在此部署rsync服务和rsync daemon 1.安装rsync   2.配置rsyncd.conf文件#vi /etc/rsyncd.conf配置文件uid = r ...

  6. CentOS安装和配置Rsync进行文件同步

    Liunx系统实现文件同步不需要搭建FTP这类的工具,只需要按照Rsync配置下文件就可以. 本文以Centos7.0为例. 1. 首先关闭SELINUX(不关闭无法同步,权限太高了) vi /etc ...

  7. centos7 使用rsync 实现文件同步

    一.服务端(192.168.8.81): 安装软件: yum -y install rsync 创建需同步的目录: mkdir -p /home/root/rsync 编辑配置文件:vim /etc/ ...

  8. Rsync实现文件同步的算法(转载)

    Rsync文件同步的核心算法 文章出处:http://coolshell.cn/articles/7425.html#more-7425 rsync是unix/linux下同步文件的一个高效算法,它能 ...

  9. Centos7利用rsync实现文件同步

    0x01 测试环境 CentOS 7.4 Rsync服务端:192.168.204.130 CentOS 7.4 Rsync客户端:192.168.204.168 0x02 rsync同步方式 第一种 ...

随机推荐

  1. ES查询之刨根问底

    昨天有一个需求,就是想要根据某个网关url做过滤,获取其下面所有的上下文nginx日志:如果直接"query":"https://XXX/YYY/ZZZ"发现有 ...

  2. jmeter修改ServerAgent的默认端口号

    jmeter修改ServerAgent的默认端口号 1 java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 5555 --tcp-port ...

  3. 【转】EF Code First 学习笔记:约定配置

    要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就 ...

  4. 在Ubuntu上使用noip动态域名的方法(ddns)

    首先,注册一个noip.com的帐号. 注册的步骤见这篇教程:http://www.cnblogs.com/infopi/p/3991407.html 建立目录 第1行进入当前用户的home目录 第2 ...

  5. 一个基于netty的websocket聊天demo

    这里,仅仅是一个demo,模拟客户基于浏览器咨询卖家问题的场景,但是,这里的demo中,卖家不是人,是基于netty的程序(我就叫你uglyRobot吧),自动回复了客户问的问题. 项目特点如下: 1 ...

  6. MMCM与PLL

    MMCM与PLL   1.the clock management title(CMT) 弄清楚BUFR, IBUFG,BUFG,GT,BUFH,是什么. 2.MMCM内部结构 3.PLL内部结构 4 ...

  7. 使用Vivado的block design

    使用Vivado的block design (1)调用ZYNQ7 Processing System (2)配置ZYNQ7系统 (3)外设端口配置 根据开发板原理图MIO48和MIO49配置成了串口通 ...

  8. Web Services and C# Enums

    Web Service Transparency .NET support for web services is excellent in creating illusion of transpar ...

  9. Python 简说 list,tuple,dict,set

    python 是按缩进来识别代码块的 . 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误. list  有序集合  访问不 ...

  10. 简单说throw和throws的区别

    1. 区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型. 2.分别介绍 ...