服务器:192.168.24.31
客户端:192.168.22.167
一.配置rsync(服务端和客户端都需要进行相同的配置)
1.配置 /etc/rsyncd.conf (如果没有该文件,就新建文件),写入如下内容
strict modes = yes
#rsync default port
uid = root #守护进程的用户权限
gid = root
port = 873 #rsync使用的端口,默认873
logfile = /var/log/rsyncd.log # 日志位置
pidfile = /var/run/rsyncd.pid # 进程号存放位置
max connections = 4 # 客户端最大连接数目
auth users = backup, user #授权用户
secrets file = /etc/rsyncd.secrets #授权用户密码文件位置
use chroot = yes
read only = no # no客户端可上传文件,yes只读
write only = no # no客户端可下载文件,yes不能下载
#[modules] each path responding to a module
[appbackup] # 要同步的模块名
path = /home/software/rsync/test1 # 要同步的目录
auth user = user # 登陆系统使用的用户名,没有默认为匿名。
#hosts allow=9.4.122.24
2.配置密码文件
密码文件为配置文件中所写的文件/etc/rsyncd.secrets格式为账户:密码,写入如下内容
user:123
backup:123
3.修改配置文件和密码文件的权限
[root@localhost ~]#chmod 600 /etc/rsyncd.conf
[root@localhost ~]#chmod 600 /etc/rsyncd.secrets
4.启动守护进程
[root@localhost ~]#rsync --daemon --config=/etc/rsyncd.conf
5.检查rsync是否启动
[root@localhost ~]#lsof -i :873 或
[root@localhost ~]#netstat -an |grep 873</a>
二.客户端配置
1.新建密码文件
在/home/longzhiye/softWare/rsync目录下新建一个密码文件
[root@localhost ~]#vi /home/longzhiye/softWare/rsync/rsyncd.secrets
写入如下内容
user:123
backup:123
2.修改密码文件的权限
[root@localhost ~]chown root.root /home/longzhiye/softWare/rsync/rsyncd.secrets
[root@localhost ~]#chmod 600 /home/longzhiye/softWare/rsync/rsyncd.secrets
3.测试下载和上传功能
从服务器上下载文件
[root@localhost ~]#rsync -avz --password-file=/home/longzhiye/softWare/rsync/rsyncd.secrets user@192.168.24.31::appbackup /home/longzhiye/softWare/rsync/test1/
上传文件到服务器
[root@localhost ~]#rsync -avz --password-file=/home/longzhiye/softWare/rsync/rsyncd.secrets /home/longzhiye/softWare/rsync/test1/ user@192.168.24.31::appbackup
至此就实现了手动同步的功能
三.inotify 安装,实现自动同步功能(只在服务端操作)
1.查看是否支持
[root@localhost ~]#ll /proc/sys/fs/inotify
执行结果:
total 0
-rw-r--r--. 1 root root 0 Nov 29 05:34 max_queued_events
-rw-r--r--. 1 root root 0 Nov 29 05:34 max_user_instances
-rw-r--r--. 1 root root 0 Nov 29 05:34 max_user_watches
2.下载安装inotify
2.1下载源码包
下载地址:http://inotify-tools.sourceforge.net
笔者分享个百度云下载地址:http://pan.baidu.com/s/1qXYV7Fe
2.2上传到服务器的任意路径,解压安装包
切换到上传文件位置,解压安装包
[root@localhost ~]# tar zxvf inotify-tools-3.14
进入该目录执行安装操作
[root@localhost ~]#cd inotify-tools-3.14
[root@localhost ~]#./configure --prefix=/usr/local/inotify
提示:/usr/local/inotify为安装路径,可自行修改
[root@localhost ~]#make
编译
[root@localhost ~]#make install
安装
3.配置inotify
3.1.新建文件 rsync.sh 并赋予执行权限,文件名、位置随便,写入如下内容
#!/bin/bash
#同步接收方ip
client=192.168.22.167
src=/home/longzhiye/softWare/rsync/test1/
#同步接收方配置的rsync模块名
dest=appbackup
#同步接收方鉴权时的用户
user=user
/home/longzhiye/softWare/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,move,attrib $src | while read files
do
/usr/bin/rsync -vzrtopgq --delete --progress --password-file=/home/longzhiye/rsyncpasswd.secrets $src $user@$client::$dest
done
3.2.修改文件执行权限
[root@localhost ~]#chmod +x ~/rsync.sh
3.3.在家目录下新建一个rsyncpasswd.secrets文件,内容为刚才新建文件中用户对应的对应密码,写入如下内容
123
修改对应的权限
[root@localhost ~]#chmod 600 ~/rsyncpasswd.secrets
4.运行rsync.sh
[root@localhost ~]#sh ~/rsync.sh
5.测试
在/home/software/rsync/test1下新建、修改、删除文件,客户端查看是否可以自动同步所进行的操作
至此单向实时同步已经实现,再重复设置另一端就能实现双向实时同步
网友评论