实验环境:
rsync服务器是192.168.6.129,客户机上192.168.6.130
1.在192.168.6.129服务器上安装inotify-tools
[root@Centos7 /]# yum install inotify-tools -y
备注:inotify是内核的一个功能,我们要使用内核的功能,必须要在用户空间安装对应的工具才可以对内核功能发起调用操作
2.系统已经默认安装了rsync,接下里只需配置即可
3.配置rsync服务,让其工作为守护进程模式
[root@Centos7 /]# vim /etc/rsyncd.conf
添加以下内容:
uid = root
gid = root
use chroot = no
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
host allow = 192.168.6.0/24
[backup]
path = /backup/
comment = share backup
read only = no
auth users = jerry
secrets file = /etc/rsync.pass
4.新建/backup目录和/etc/rsync.pass文件,并且配置一个用户和密码用于rsync同步
[root@Centos7 /]# vim /etc/rsyncd.conf
[root@Centos7 /]# mkdir /backup
[root@Centos7 /]# ll /backup
total 0
[root@Centos7 /]# echo "jerry:admin" > /etc/rsync.pass
[root@Centos7 /]# cat /etc/rsync.pass
jerry:admin
[root@Centos7 /]# chmod 600 /etc/rsync.pass
备注:rsync.pass文件用于存放rsync同步数据时用到的用户和密码,这个文件的格式是用户名:密码,这些都是明文的,为了其内容的安全,通常我们把其权限设置为非root用户不可读写的权限
5.启动rsync服务
[root@Centos7 /]# rsync --daemon
[root@Centos7 /]# ss -ntl
默认工作在tcp 的873端口
6.在客户机(192.168.6.130)上安装inotify-tools,并创建用于rsync服务器上的用户对应的密码文件和创建/www目录
[root@Centos7 ~]# yum install -y inotify-tools
[root@Centos7 ~]# echo "admin" > /etc/rsync.pass
[root@Centos7 ~]# chmod 600 /etc/rsync.pass
[root@Centos7 ~]# cat /etc/rsync.pass
admin
[root@Centos7 ~]# ll /etc/rsync.pass
-rw------- 1 root root 6 Oct 20 17:57 /etc/rsync.pass
[root@Centos7 ~]# mkdir /www
[root@Centos7 ~]# ll /www/
total 0
[root@Centos7 ~]#
7.在客户端(192.168.6.130)上编写脚本,实现实时监控/www目录下的资源,如有变动,立刻同步至rsync服务器对应的目录下
8.测试
服务端192.168.6.129 backup 目录为空
客户端192.168.6.130 /www目录为空
运行192.168.6.130客户端上的脚本
[root@Centos7 ~]# bash inotify_rsync.sh
在192.168.6.130客户端上创建test.txt文件
查看192.168.6.129服务端上是否同步了