关于centos7版本上面搭建rsync服务并且实现实时同步
之前一直是在6版本上面搭建rsync服务,在7版本上面折腾了半天。此处总结下
inotify下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
环境说明:

centos7版本上面已经默认安装了rsync和xinetd服务

[ root@rh6 ~ ]# rpm -ql rsync           --在6版本上面执行此命令可以看到xinetd服务配置文件下面有rsync的子配置文件

/etc/xinetd.d/rsync

[ root@rh6 ~ ]# ls /etc/xinetd.d/sync

/etc/xinetd.d/rsync

[ root@centos7_3 ~ ]# rpm -ql rsync           --在7版本上面执行此命令却找不到这样的配置文件,ls查看提示没有此文件

[ root@centos7_3 ~ ]# ls /etc/xinetd.d/sync

ls: cannot access /etc/xinetd.d/rsync: No such file or directory

————————————————————————————————————————————————————————

实验环境:两台centos7版本的宿主机

客户端:172.16.27.25
服务端:172.16.27.26
具体步骤:
服务端
[root@cc4 ~]# rpm -aq |grep xinetd
xinetd-2.3.15-13.el7.x86_64
[root@cc4 ~]# rpm -aq |grep rsync
rsync-3.0.9-17.el7.x86_64
[root@cc4 ~]# vim /etc/xinetd.d/rsync    --说明:修改xinetd服务下面的配置文件,将rsync交给xinetd管理。此配置文件在7版本默认上面是没有的,我是直接从6版本复制过来的,也可以手写下面内容
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable              = no      --将原来的yes改为no
        flags                  = IPv6
        socket_type      = stream
        wait                   = no
        user                   = root
        server                = /usr/bin/rsync
        server_args       = --daemon
        log_on_failure  += USERID
}
[root@cc4 ~]# vim /etc/rsyncd.conf       --修改配置文件发布共享目录
[test]
        path = /test                 --本地共享目录
        auth user = user1      --指定用户同步
        secrets file = /etc/rsyncd.secrets      --指定保存用户密码文件
[root@cc4 ~]# systemctl restart xinetd    --启动服务
[root@cc4 ~]# vim /etc/rsyncd.secrets    --创建安全用户
user1:123
[root@cc4 ~]# chmod 600 /etc/rsyncd.secrets    --设置安全用户文件的权限,不能被其他人查看
[root@cc4 ~]# mkdir /test     --创建共享目录
[root@cc4 ~]# touch /test/file{1..10}    --此处为了测试,创建几个文件
[root@cc4 ~]# ls /test/
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

客户端测试:
[root@cc3 ~]# rsync -a 172.16.27.26::
test   
[root@cc3 date]# ls
[root@cc3 date]# rsync -av user1@172.16.27.26::test /date
receiving incremental file list
./
file1
file10
file2
file3
file4
file5
file6
file7
file8
file9
sent 219 bytes  received 524 bytes  1486.00 bytes/sec
total size is 0  speedup is 0.00
[root@cc3 date]# ls        --可以看见成功从上面同步过来了。
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

通过inotify+rsync架构实现实时同步
环境说明:要求node1主机上面的/node1目录发生新的创建,删除,移动,以及文件属性信息改变时,自动同不到node2主机的/node2目录
node1主机: IP  172.16.27.25
node2主机: IP  172.16.27.26
具体步骤:
node1端:
[root@cc3 tmp]# ls /tmp/inotify-tools-3.14.tar.gz
/tmp/inotify-tools-3.14.tar.gz
[root@cc3 tmp]# tar -xf inotify-tools-3.14.tar.gz
[root@cc3 tmp]# cd inotify-tools-3.14/
[root@cc3 inotify-tools-3.14]# ls
aclocal.m4  ChangeLog     config.h.in  configure     COPYING  INSTALL     libinotifytools  Makefile.am  man      NEWS    src
AUTHORS     config.guess  config.sub   configure.ac  depcomp  install-sh  ltmain.sh        Makefile.in  missing  README
[root@cc3 ~]# ./configure && make && make install    --安装软件
[root@cc3 ~]# vim /tmp/1.sh
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,create,move,delete,attrib /node1 |while read events
        do
        rsync -a --delete /node1 172.16.27.26::test
        echo "`date +'%F %T'` 出现事件 $events" >>/tmp/rsync.log 2>&1
        done
[root@cc3 ~]#mkdir /node1
[root@cc3 ~]# touch /node1/testa{1..5}

node2端:
[root@cc4 ~]# vim /etc/rsyncd.conf
[test]
        path = /node2/
        read only = false
        uid = root
        gid = root
[root@cc4 ~]# mkdir /node2
[root@cc4 ~]# ls /node2/        --此时查看,该目录里面什么文件都没有
[root@cc4 ~]# systemctl restart xinetd
测试验证:
在node1端执行脚本并且放在后台执行,并且创建文件,再看tmp下面是否有创建文件后脚本执行报的日志信息
[root@cc3 ~]# nohup sh /tmp/1.sh &
[1] 14720
[root@cc3 ~]# nohup: ignoring input and appending output to ‘nohup.out’   --此处直接回车

[root@cc3 ~]# echo haha >>/node1/file1
[root@cc3 ~]# ls /tmp/rsync.log
/tmp/rsync.log
[root@cc3 ~]# cat /tmp/rsync.log
2017-10-10 15:55:01 出现事件 /node1/ CREATE file1
2017-10-10 15:55:01 出现事件 /node1/ MODIFY file1

在node2端检查验证
[root@cc4 ~]# ls /node2/
file1  testa1  testa2  testa3  testa4  testa5
[root@cc4 ~]# cat /node2/file1
haha
---------测试发现在node1端创建的文件实时同步过来到node2上面了。

总结:其实在6系统和7系统上面搭建rsync服务是一样的,只是在7上面改版了,系统默认没有/etc/xinetd.d/rsync配置文件,需要自己手动创建。其余配置完全一样

最新文章

  1. Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里
  2. 在wex5平台grid里面的gridselect下拉不能显示汉字问题
  3. [转]Windows进程间通信的各种方法
  4. vim tab 和4个空格
  5. Android Touch(4)我不知道的MotionEvent(*)
  6. c++ 11 key note
  7. MVC 4 结合jquery.uploadify 上传实例
  8. 【图像处理】Bilinear Image Scaling
  9. POJ 2348 Euclid's Game(简单博弈)
  10. hashlib,configparser,logging,模块
  11. PHP 扩展开发检测清单(扩展开发必读)
  12. 从Windows角度看Mac OS X上的软件开发
  13. MQTT 单个订阅消息量过大处理
  14. undefined reference问题总结
  15. date的用法
  16. .net 生成html文件后压缩成zip文件并下载
  17. HDU 2492 Ping pong (数状数组)
  18. 使用SoapUI 对WebService压力测试
  19. centos:解决docker容器内挂载目录无权限 ls: cannot open directory .: Permission denied
  20. 初学node.js-MongoDB安装和环境服务配置(4)

热门文章

  1. 阿里云AHAS应用高可用服务初体验
  2. ansiblle---roles
  3. 解决MySQL5.7输入show databases 不显示内容的问题
  4. EBR-TLV数据格式
  5. python之scrapy模块下载中间件
  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议
  7. vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置
  8. springboot-helloworld-idea
  9. vue如何监听键盘事件中的按键?
  10. 使用国内镜像给ROS安装提速