服务器文件双向、多向同步rsync+sersync
安装前的准备(各同步服务器都配置)
# 因为这会降低服务器异常报警的级别,所以记得添加报警机制
# SELINUX=disabled(完全不验证)
vim /etc/sysconfig/selinux
SELINUX=permissive
ESC
:wq
getenforce
setenforce 0
当然上述方案由于存在隐患被诟病,可以参考如下方案(各同步服务器都执行)
1. [参考链接](https://blog.csdn.net/u011630575/article/details/52068959)
# 安装SELinux管理工具semanage
yum -y install policycoreutils-python
2. [参考链接](https://www.howtoing.com/sync-files-using-rsync-with-non-standard-ssh-port)
# 查看rsync要在SELinux中占用的端口
semanage port -l|grep rsync
# 执行后显示
# rsync_port_t tcp 873
# rsync_port_t udp 873
# 添加rsync占用端口到SELinux
semanage port -a -t rsync_port_t -p tcp 873
semanage port -a -t rsync_port_t -p udp 873
安装rsync(各同步服务器都装)
yum install rsync -y
配置rsyncd.conf(各服务器都配置)
# uid、gid决定被同步过来的文件所属用户所属组
# secrets file决定rsync密码配置文件的位置
# []中是一个自己指定的同步计划的名字(字母数字下划线)
# path是被同步文件的存放位置
# hosts allow这里注意,每一台服务器都只写其它服务器IP
# hosts allow、hosts deny格式
# *(所有IP)
# 192.168.0.2/24(IP段)
# 192.168.0.2 192.168.0.3(指定多个IP)
# secrets file = /etc/rsync.pswd 这里不启用密码验证,通过IP进行物理隔离
vim /etc/rsyncd.conf
uid = www
gid = www
use chroot = yes
max connections = 0
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
motd file = /tmp/rsyncd.motd
[tongbu001]
path = /www/test
comment = xoyo video files
ignore errors = yes
read only = no
hosts allow = 192.168.0.2 192.168.0.3 192.168.0.4
hosts deny = *
创建同步目录(各服务器都创建)
useradd www
mkdir /www
mkdir /www/test
chown -R www:www /www
查看占用的端口号
netstat –apn|grep rsync
开启端口
yum install firewalld -y
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --zone=public --permanent --add-port=873/tcp
firewall-cmd --reload
启动rsync(各服务器都启动)
rsync --daemon
设置rsync开机启动
# 进入单元文件目录
cd /etc/systemd/system
# 创建rsync单元文件,格式为: [单元文件名].[单元文件类型]
vim rsync.service
[Unit]
Description=Start rsync on boot.
After=default.target network.target
[Service]
User=root
Group=root
Type=forking
PIDFile=/var/run/rsyncd.pid
ExecStart=/usr/bin/rsync --daemon
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false
Restart=always
[Install]
WantedBy=multi-user.target
ESC
:wq
# 修改文件权限为只有root用户可以编辑该文件
chown -R root:root /etc/systemd/system/rsync.service
chmod -R 644 /etc/systemd/system/rsync.service
# 更新systemd
systemctl daemon-reload
systemctl enable rsync
systemctl start rsync
安装sersync(各服务器都装)
# 源码
https://code.google.com/archive/p/sersync/
# 百度云
https://pan.baidu.com/s/1qrwTM40aJ8ckmT84PpiNjg
# 64位最新
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
# 32位最新
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz
# 下载安装
wget 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
mv GNU-Linux-x86/ /usr/local/sersync
配置sersync(各服务器都执行)
cd /usr/local/sersync
vim confxml.xml

启动sersync(各服务器都执行)
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
测试
# 在任意一台服务器执行
su www
cd /www/test
echo a > test.txt
ls
# 然后在其他每台服务器执行
cd /www/test
ls
# 如果结果中包含
test.txt
# 即表示安装成功
配置开机启动rsync、sersync
网友评论