当前位置:   article > 正文

CentOS7通过lsyncd+rsync实现两台服务器数据实时同步备份_centos服务器间同步

centos服务器间同步

1、工具简介

        1.1、rsync   

        rsync(remote synchronize)是 Liunx/Unix 下的一个远程数据同步工具,它可通过 LAN/WAN 快速同步多台主机间的文件和目录。rsync 通过比较两边文件是否相同,不相同才进行更新。
        但是rsync无法知道“什么时候同步”,因为rsync只有执行同步命令的时候,才会去扫描文件判断哪些文件被修改了,只能建立一个定时任务,每隔一定的时间(比如5分钟,10分钟等等)去执行一次同步,这样虽然能同步,但却“不实时”。

        2.2、lsyncd     

        lsyncd实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。它完美解决了 inotify + rsync海量文件同步带来的文件频繁发送文件列表的问题 -通过时间延迟或累计触发事件次数实现。

2、环境准备

        源服务器(需要备份数据的服务器)——只需要部署rsync(daemon模式)

        目标服务器(接收数据的服务器)——需要部署rsync和lsyncd

        可支持多个源服务器往一个目标同步

        也支持双向同步,就是把源端也当做一个目标端,按照目标端进行配置;然后目标也是一个源端,需要按照源端配置lsyncd

        所需离线安装包

3、目标服务器部署

        3.1、安装rsync

                方式一(在线)后续步骤以此为基础:

yum -y install rsync

                方式二(离线):        

  1. #先下载安装包https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
  2. #将安装包放到你喜欢的文件夹
  3. #进入该文件夹并解压安装
  4. tar -zxvf rsync-3.1.2.tar.gz
  5. cd rsync-3.1.2
  6. ./configure --prefix=/usr/local/rsync
  7. make
  8. make install
  9. #启动
  10. /usr/local/bin/rsync --daemon
  11. #验证是否启动
  12. ps -aux |grep rsync
  13. root 59120 0.0 0.2 1460 972 ?? Ss 5:20PM 0:00.00 /usr/local/rsync/bin/rsync –daemon
  14. #查看监听端口状态
  15. netstat -an |grep 873
  16. tcp4 0 0 *.873 *.* LISTEN
  17. #查看日志
  18. cat /var/log/rsyncd.log

        3.2、配置rsyncd.conf

  1. #没有该文件,需手动创建
  2. vi /etc/rsyncd.conf
  1. #各参数具体含义可自行百度
  2. log file = /var/log/rsyncd.log #日志路径
  3. pidfile = /run/rsyncd.pid
  4. lock file = /run/rsync.lock
  5. secrets file = /etc/rsync.password #认证文件,连接的账号密码
  6. [backup] #模块名称,有多个源服务端时就在下面复制整个模块
  7. path = /data/influxbackup/ #存储接收数据的路径
  8. comment = sync etc from client
  9. uid = root
  10. gid = root
  11. port = 873
  12. ignore errors
  13. use chroot = no
  14. read only = no
  15. list = no
  16. max connections = 200
  17. timeout = 600
  18. auth users=root #认证用户,同认证文件里的
  19. hosts allow = 10.11.1.62 #允许链接的ip
  20. #hosts deny = x.x.x.x #不允许的ip

        3.3、创建备份目录

mkdir /data/influxbackup/

        3.4、创建账号密码

  1. echo 'root:123456' > etc/rsync.password
  2. #查看配置是否成功
  3. cat etc/rsync.password
  4. root:123456

        3.5、设置文件权限

  1. chmod 600 /etc/rsync*
  2. ll /etc/rsync*
  3. -rw-------. 1 root root 880 Aug 13 14:54 /etc/rsyncd.conf
  4. -rw-------. 1 root root 10 Aug 13 14:55 /etc/rsync.password

        3.6、启动服务

  1. systemctl start rsyncd #启动服务
  2. systemctl status rsyncd #查看服务状态
  3. systemctl enable rsyncd #设置开机启动
  4. Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.

        3.7、关闭防火墙和selinux

  1. #关闭防火墙
  2. systemctl stop firewalld
  3. #关闭selinux
  4. sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/sysconfig/selinux
  5. #刷新配置,立即生效
  6. setenforce 0

到此,目标服务器配置完成。

4、源服务器配置

        4.1、安装rsync,操作同上,只需要安装,不需要配置和启动

        4.2、配置认证文件

  1. #指定密码,密码注意和上面的密码一致,用户可在命令中设置
  2. echo "123456" > /etc/rsyncd.password
  3. chmod 600 /etc/rsyncd.password #设置文件权限
  4. ll /etc/rsyncd.password

        4.3、关闭防火墙和selinux,同3.7

        4.4、使用命令手动测试同步

  1. #同步命令
  2. rsync -avH --port 873 --progress --delete /root/soft/backuptest/ root@10.11.1.60::backup --password-file=/etc/rsyncd.password

#打印的信息
sending incremental file list
deleting 123 #删除文件也会目标服务器的删除

sent 70 bytes  received 27 bytes  194.00 bytes/sec
total size is 0  speedup is 0.00

                 出现以上结果代表rsync安装配置成功。

5、源服务器安装配置lsyncd

        5.1安装lsyncd

yum -y install lsyncd

如出现无法安装成功,则先安装epel-release

yum install -y epel-release

服务器没有外网可下载上面的离线安装包

        5.2 配置lsyncd.conf

vim /etc/lsyncd.conf
  1. #具体参数含义可自行百度
  2. settings {
  3. logfile = "/var/log/lsyncd/lsyncd.log",
  4. statusFile = "/var/log/lsyncd/lsyncd.status",
  5. inotifyMode = "CloseWrite",
  6. maxProcesses = 8,
  7. maxDelays = 5, #累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到。
  8. nodaemon = false,
  9. }
  10. sync { #如果有多台服务器需要同步,依次往下配置多个sync即可
  11. default.rsync,
  12. source = "/var/lib/influxdb/engine/", #监控的需要备份的目录
  13. target = "root@10.11.1.60::backup",
  14. delete = true, #删除信息也同步
  15. delay = 15, #延迟15秒同步
  16. init = false, #false代表启动服务前的内容不会同步,如想设置为true,删掉即可,不要配置为true
  17. rsync = {
  18. binary = "/usr/bin/rsync", #rsync服务路径
  19. password_file = "/etc/rsyncd.password", #认证文件
  20. archive = true,
  21. compress = false,
  22. verbose = false,
  23. init=true
  24. _extra = {"--bwlimit=200", "--omit-link-times"}
  25. }
  26. }

        5.3创建日志文件

  1. mkdir /var/log/lsyncd/
  2. touch /var/log/lsyncd/lsyncd.log
  3. touch /var/log/lsyncd/lsyncd.status
  4. #设置权限
  5. chmod 600 /var/log/lsyncd/lsyncd.log
  6. chmod 600 /var/log/lsyncd/lsyncd.status

        5.4启动服务

  1. systemctl start lsyncd
  2. systemctl status lsyncd
  3. # systemctl restart rsyncd
  4. systemctl enable lsyncd #开机启动

        5.5查看日志

Wed Sep 20 17:00:50 2023 Normal: --- Startup ---
Wed Sep 20 17:00:50 2023 Normal: recursive startup rsync: /var/lib/influxdb/engine/ -> root@10.11.1.60::backup/
Wed Sep 20 17:00:56 2023 Normal: Startup of /var/lib/influxdb/engine/ -> root@10.11.1.60::backup/ finished. 

参考文章

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/145867
推荐阅读
相关标签
  

闽ICP备14008679号