rsync + sersync 数据同步
Posted zjz20
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync + sersync 数据同步相关的知识,希望对你有一定的参考价值。
一、rsync+inotify与rsync+sersync架构的区别
1、rsync+inotify
a、inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来;
b、rsync在同步的时候,并不知道具体是哪个文件或目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此效率很低
2、rsync+sersync
a、sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字;
b、rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。
二、 rsync+sersync 数据同步
1. sersync 监控指定目录 文件事件变化;
2. sersync 调用 rsync 客户端命令将更新的目录和文件增量同步到 rsync 服务器,实现数据同步;
安装 rsync
dnf install rsync
rpm -qa rsync
rsync --version
rsync server
rsync 配置文件
cat /etc/rsyncd.conf uid=root gid=root max connections=100 use chroot=true log file=/var/log/rsyncd.log motd file=/etc/rsyncd.motd transfer logging=true hosts allow=192.168.99.0/24 [data] path=/data comment=data read only =no list=yes auth users=root secrets file=/etc/rsyncd.pwd
rsync 配置文件参数
uid=root # 服务器端传输文件时,要发哪个用户和用户组来执行 gid=root # 服务器端传输文件时,要发哪个用户和用户组来执行 max connections=100 # 客户端最多连接数 use chroot=true # 用 chroot ,在传输文件之前,服务器守护程序在将 chroot 到文件系统中的目录中,这样 #做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超 级用户权限。另外对符号链接 #文件,将会排除在外。也就是说,你在 rsync 服务器上,如果有 符号链接,你在备份服务器 #上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同 步符号链接的内容 log file=/var/log/rsyncd.log #rsync 服务器的日志 motd file=/etc/rsyncd.motd # 定义motd file 路径 rsyncd.motd 内容是定义服务器信息的,用户登录时会看到这个信息 transfer logging=true # 传输文件日志 hosts allow=192.168.99.0/24 # 允许的 ip 地址 [data] # 模块名 path=/data # 同步的目录 exclude=web # 同步目录中去除的目录,即 web 不同步 comment=data # 注释,注释内容可自己定义,起提示作用 read only=no # 只读选择,如为 yes 则不让客户端上传文件到服务器上 list=yes # 服务器上提供同步数据的目录是否显示 auth users=root # 认证用户是 root secrets file=/etc/rsyncd.pwd # 密码文件保存路径,注意此文件的密码要与 223 上的 rsyncd.pwd2 文件中密码相同,权限 #必须设置为600,用来认证客户端的秘钥文件 格式 USERNAME:PASSWD #注意:配置文件里不能有注释信息
rsync 密码文件
echo "root:123456" >/etc/rsyncd.pwd echo "123456" >/etc/rsyncd.pwd2
修改权限
chmod 600 /etc/rsyncd.pwd chmod 600 /etc/rsyncd.pwd2
systemctl 管理 rsync 服务
/etc/sysconfig/rsyncd
vim /etc/sysconfig/rsyncd OPTIONS=""
rsyncd.service
cat /lib/systemd/system/rsyncd.service [Unit] Description=fast remote file copy program daemon ConditionPathExists=/etc/rsyncd.conf [Service] EnvironmentFile=/etc/sysconfig/rsyncd ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS" [Install] WantedBy=multi-user.target
rsyncd 启动
systemctl start rsyncd systemctl enable rsyncd
rsync 端口 进程
netstat -auntlp |grep 873 ps -ef |grep rsync
firewall
firewall-cmd --add-port=873/tcp --permanent firewall-cmd --reload
rsync client
rsync 本地磁盘同步数据
rsync -vlzrtogp /mnt/data /backups rsync -vlzrtogp /mnt/data/ /backups
/mnt/data 表示将整个 /data目录复制到目标目录
/mnt/data/ 表示将 data 目录中的所以内容复制到目标目录
rsync 远程同步
rsync -vlzrtopg --progress --delete /mnt/data/ root@192.168.99.227::data --password-file=/etc/rsyncd.pwd2
rsync 数据同步限流
rsync -vlzrtogp --progress --delete --bwlimit=1000 远程文件 本地文件 //限制为1000kBytes/s rsync -vlzrtogp --progress --delete --bwlimit=2048 本地文件 远程文件 //限制为2M/s
rsync client 参数
-v, --verbose 详细输出模式 -l, --links 保持符号链接文件 -z, --compress 在传输文件时进行压缩处理 -r, --recursive 对子目录以递归模式处理 -t, --times 保持文件时间信息 -o, --owner 保持文件属主信息 (super-user only) -p, --perms 保持文件权限 -g, --group 保持文件属组信息 --progress 在传输时显示传输过程 --delete 删除目标端比本地端多余得文件目录保持数据一致性 --exclude=web 指定排除一个不需要传输的文件匹配模式 --exclude-from=FILE 从 FILE 中读取排除规则 --include=PATTERN 指定需要传输的文件匹配模式 --include-from=FILE 从 FILE 中读取包含规则 --password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令 --bwlimit=RATE 限制传输 I/O 带宽
rsync + sersync
安装 rsync
dnf install rsync
rsync 密码文件
echo "123456" >/etc/rsyncd.pwd2
修改权限
chmod 600 /etc/rsyncd.pwd2
下载 sersync
cd /opt wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz
解压 sersync
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz mv GNU-Linux-x86 /usr/local/sersync
sersync 配置文件
vim /usr/local/sersync/confxml.xml
启动 sersync
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
ps -ef |grep sersync2
sersync 变量
echo "export PATH=$PATH:/usr/local/sersync" >>/etc/profile source /etc/profile
数据同步测试
源服务器创建文件
目的服务器查看
rsync 数据同步日志
sersync 多实例
监控多个目录进行数据同步时,分别配置不同的 sersync 配置文件即可
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/nginx_confxml.xml /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/zabbix_confxml.xml
转自:https://mp.weixin.qq.com/s/QJGzmUm-psE1GCVR1Zz-lA
以上是关于rsync + sersync 数据同步的主要内容,如果未能解决你的问题,请参考以下文章