一、安装rsync
1、以root用户登录fastDFS服务器
2、安装rsync
这里假设有两个服务器R1、R2,对两个服务器做rsync+sersync文件实时同步。
#yum install -y rsync --也可以使用解压rsync安装包的形式安装,下载链接rsync
查看是否安装成功:
#rpm -qa sync
显示:rsync-3.1.2-10.el7.x86_64,rsync 安装rsync-3.1.2版本成功。
3、修改配置文件/etc/rsync.conf(这里没有配置权限用户,文件传输时不需要输入验证密码)
#vi /etc/rsync.conf
uid = root 进程身份
gid = root 进程组
use chroot = no
address=10.7.17.116 监控地址,即当前服务地址
port=873 使用端口
max connections = 0 最大连接数,0无限制
log file = /var/log/rsyncd.log 日志存放位置
pidfile = /var/run/rsyncd.pid pid文件位置
[fastdfs] 共享模块名称,同步时根据指定的模块同步相应的文件目录
path = /opt/tmp/ 当前服务同步文件存放路径
comment =test rsync 描述
read only = no 设置服务端文件读写权限
list = yes 是否允许查看模块信息
#auth users = rsyncuser 备份的用户,和系统用户无关,这里配置后需要创建密码验证文件,文件同步时验证用户及密码
hosts allow = 10.1.101.112 允许同步客户端的IP地址,可以是网段,或者用*表示所有 192.168.10.0/65或192.168.10.0/255.255.255.0
#secrets file = /etc/rsync.passwd 存放用户的密码文件,格式是 用户名:密码
4、如果第3步设置了权限用户,则需要创建密码文件。创建虚拟用户rsyncuser使用的密码文件
/etc/rsyncd.passwd,该文件的权限必须是600.
#echo "rsyncuser:123456">/etc/rsyncd.passwd
#chmod 600 /etc/rsyncd.passwd
以上步骤,R1和R2服务器安装过程一样,只是第3步修改配置文件时,“共享模块名称”、“文件同步路径”做相应修改,“address”和“hosts allow”参数值互换。
二、防火墙规则将端口加入
查看端口873是否开放
#firewall-cmd --list-all
若查询结果ports中无服务端口,则加入端口
#firewall-cmd --add-port=873/tcp --permanent
重启防火墙,使配置生效
#systemctl restart firewalld.service
三、启动rsync服务
查看服务rsyncd.service是否存在
#systemctl list-unit-files --type=service
若存在则启动服务
#systemctl restart rsyncd.service
#systemctl start rsyncd
查看rsync服务及端口
#ps -ef | grep rsync
#ss -antuple | grep 873
四、测试
R1向R2同步
root登录R1
#cd /opt/tmp
#touch test1
#rsync -avz /opt/tmp root@R2地址::fastdfs
R2查看文件同步情况
#cd R2同步文件存放目录
同理R2向R1同步一样的操作。
安装配置sersync
一、查看服务器是否支持inotyfy,sersync是inotyfy的升级软件,需要服务器版本支持inotyfy
#ll /proc/sys/fs/inotify
出现三个参数文件max_queued_events、max_user_instances、max_user_watches则表示支持
这三个参数值都有一个默认值,默认值较小,需要修改数值以防止文件同步报错
查看参数值
#sysctl -a | grep max_queued_events ---默认16384
#sysctl -a | grep max_user_instances ---默认128
#sysctl -a | grep max_user_watches ---默认8192
修改数值:
#sysctl -w fs.inotify.max_queued_events=99999999
#sysctl -w fs.inotify.max_user_instances=65535
#sysctl -w fs.inotify.max_user_watches=99999999
可以在系统文件里添加参数,永久改变以上参数值
#vi /etc/sysctl.conf
fs.inotify.max_queued_events=99999999
fs.inotify.max_user_instances=65535
fs.inotify.max_user_watches=99999999
:wq!
保存退出。
二、下载sersync安装包sersync2.5.4_64bit_binary_stable_final.tar.gz,下载地址https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
三、解压软件包,创建目录结构,移动文件
#tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
#mkdir /usr/local/sersync
#mv GNU-Linux-x86/* /usr/local/sersync
四、配置sersync
#cd /usr/local/sersync
编辑confxml.xml配置,这里只改了联行数据,其他数据可根据实际情况调整
#vi confxml.xml
修改第24-28行,其中修改localpath watch=“/opt/tmp”,为本地要同步的目录,如当前服务器为R1,则此处就是R1的文件目录,remote ip=“R2的ip” name="fastdfs"。
如果rsync还设置了密码文件,则还需要根据情况修改第31-34行。其中params参数为同步时rsync命令的参数,根据需要设置,我这里设置的params="-avz"。配置完成后保存退出。
启动sersync:
#/usr/local/sersync/sersync2 -d -r -o /ur/local/sersync/confxml.xml
查看服务:
#ps -ef | grep sersync
五、设置sersync开机自启动
#vi /etc/rc.d/rc.local
在最后一行添加:
/usr/local/sersync/sersync2 -d -r -o /ur/local/sersync/confxml.xml
:wq!
保存退出。
添加权限
#chmod +x /etc/rc.d/rc.local
六、测试
在服务器R1同步目录下新建、修改、删除文件或文件夹,等待一分钟查看R2服务器目录是否有文件同步。