linux实现实时同步服务

2021-07-27 10:59:13 浏览数 (1)

一、rsync服务搭建

  1.1、安装rsync软件

命令:yum -y install rsync

代码语言:javascript复制
1 yum -y install rsync

 1.2、修改rsync配置文件

代码语言:javascript复制
 1  uid = rsync                      #备份目录的属主
 2  gid = rsync                      #备份目录的属组
 3  use chroot = no                    #root不转变身份
 4  fake super = yes                   #伪超级管理员身份
 5  max connections = 200                #最大连接数200
 6  pid file = /var/run/rsyncd.pid           #pid文件位置
 7  lock file = /var/run/rsyncd.lock          #lock文件位置
 8  log file = /var/log/rsyncd.log           #rsync的日志文件
 9  #transfer logging = yes
10  timeout = 300                     #超时时间300秒
11  ignore errors                     #发生错误忽略继续备份
12  read only = false                  #可读可写
13  list = false                     #不允许查看模块信息列表
14  hosts allow = 192.168.0.9/24            #白名单
15  hosts deny = 0.0.0.0/32               #黑名单
16  auth users = rsync_backup              #连接rsync服务器的认证用户
17  secrets file = /etc/rsync.password        #连接rsync服务器的密码文件,用于免交互连接rsync服务器
18 #ignore nonreadable = yes
19  [backup]                       #模块名称,用于指定备份目录位置。rsync备份时只需要指定模块名称即可,就可以将分、备份保存在备份目录中
20         path = /backup                #指定备份目录位置

 1.3、创建备份目录和修改备份目录的属组属主

代码语言:javascript复制
1 [root@backupserver /]# mkdir -p /backup
2 [root@backupserver /]# chown -R rsync:rsync /backup/
3 [root@backupserver /]# ll |grep backup
4   drwxr-xr-x    2 rsync rsync    6 Jan 20 16:43 backup [root@backupserver /]# 
5 [root@backupserver /]# 
6 [root@backupserver /]# 
7 [root@backupserver /]# vim /etc/rsync.password
8   rsync_backup:admin1234

 1.4、启动rsync服务和设置开机自启动

代码语言:javascript复制
1 [root@backupserver /]# systemctl start rsyncd
2 [root@backupserver /]# systemctl enable rsyncd
3 Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
4 [root@backupserver /]# 
5 [root@backupserver /]# 

 1.5、客户端验证rsync服务是否可用

客户端配置:

  1.5.1、安装rsync软件

命令:yum -y install rsync

  1.5.2、创建密码文件,避免交互  

代码语言:javascript复制
1 [root@webserver etc]# vim rsync.password 
2 
3 admin1234

   1.5.3、测试rsync备份

命令:

代码语言:javascript复制
1 [root@webserver etc]# rsync -avz /etc/passwd rsync_backup@192.168.0.11::backup --password-file=/etc/rsync.password    #备份命令
2 sending incremental file list
3 passwd                                                  #传输的文件名称
4 
5 sent 616 bytes  received 43 bytes  1,318.00 bytes/sec
6 total size is 1,310  speedup is 1.99
7 [root@webserver etc]# 

命令详解:
-avz:-a这是一个复合参数,这个具体需要自己去了解,-v:可视化,将备份传输的过程和结果显示在终端,-z:传输时进行压缩
/etc/passwd:要被备份的文件或者目录
rsync_backup:rsync服务器中配置文件中的认证用户
@:连接符,没有特殊作用
192.168.0.11:rsync服务器的IP地址
::backup :rsync服务器中配置文件中的模块名称,主要用于指定备份目录
--password-file:指定密码认证文件,里面存储了rsync连接的认证密码。用于免交互连接rsync服务器

上图表示rsync配置成功。

二、inotify服务搭建

2.1、下载安装inotify-tools软件

2.2、执行inotifywait命令监控需要备份的目录

  其实这里只需要安装inotify-tools软件即可,因为后面的sersync服务会启用inotify软件。那这里就只把命令写出来

命令:inotifywait -mrq /mnt -e create

代码语言:javascript复制
1 inotifywait -mrq /mnt -e create
命令详解:
-m:持续监控
-r:递归,包括监控子目录的变化
-q:尽量在终端少输出信息
-e:指定监控的动作,包括创建,删除,修改等。

 三、sersync服务搭建

3.1、下载安装sersync软件

  下载地址:https://github.com/wsgzao/sersync/archive/master.zip

  命令:

代码语言:javascript复制
[root@webserver src]# wget https://github.com/wsgzao/sersync/archive/master.zip
[root@webserver sersync]# cd /usr/local/src/
[root@webserver src]# unzip master.zip 
Archive:  master.zip
e6e4cda2583a73a5581d7015255838b5e68673c6
   creating: sersync-master/
  inflating: sersync-master/.gitattributes  
  inflating: sersync-master/.gitignore  
  inflating: sersync-master/README.md  
  inflating: sersync-master/inotify-tools-3.14.tar.gz  
 extracting: sersync-master/rsync-3.1.1.tar.gz  
  inflating: sersync-master/sersync2.5.4_64bit_binary_stable_final.tar.gz  
[root@webserver src]# cd sersync-master/
[root@webserver sersync-master]# tar -xvzf sersync2.5.4_64bit_binary_stable_final.tar.gz 
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
[root@webserver sersync-master]# mkdir/usr/local/sersync
[root@webserver sersync-master]# mv GNU-Linux-x86/* /usr/local/sersync/ 
[root@webserver sersync-master]# cd /usr/local/sersync/ 
[root@webserver sersync]# ls confxml.xml sersync2

3.2、修改配置文件/usr/local/sersync/confxml.xml

 3.3、启动sersync服务

命令:

代码语言:javascript复制
[root@webserver sersync]# /usr/local/sersync/sersync2 -rdo /usr/local/sersync/confxml.xml >/usr/local/sersync/rsync.log 2>&1 &     #启动sersync服务
[1] 13151
[root@webserver sersync]# 

命令详解:
-r:在监控前将需要备份的目录里面的内容推送到备份目录中,确保数据的统一性
-d:以守护进程运行
-o:指定sersync的配置文件
$:最后一个&试讲sersync进程放到后台进行

3.4、查看和验证实时同步

 上面两个图可以看出两台服务器备份内容已经一致,接下来看是否能实时同步

0 人点赞