rsync实现数据同步

在生产环境中,我们通常需要一台服务器备份主服务器的数据和代码这些,而手动备份很麻烦且效率不高。所以我们使用rsync+crontab实现自动同步数据。

 

主服务器:192.168.1.1

备服务器:192.168.1.2

 

搭建原理:备服务器上创建备份模板、备份用户,并以守护进程的方式运行rsync。然后主服务器以此在定时任务执行同步脚本

 

1.在备服务器上安装软件包

yum -y install xinetd rsync

# 添加测试目录
mkdir /www

2.在主服务器上安装软件包

yum -y install rsync

# 添加测试目录
mkdir /www

3.备服务器修改配置

vim /etc/rsyncd.conf
uid=root
gid=root
address=192.168.1.2            #本机ip
port=873
hosts allow=192.168.1.0/24  #允许同步的客户端的地址
use chroot=yes                     #锁定家目录
max connections=5
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
 
[wwwroot]       # 共享模块的名称                      
    path=/www/
    comment=used for web-data root
    read only=false
    list=yes            # 是否允许查看模块信息
    auth users=rsyncuser   #用来同步的用户,不是系统用户
    secrets file =/etc/rsync.passwd   # 存放用户的密码文件
# 除此之外,还有指定不同步的文件的exclude、指定不进行压缩处理的dont compress。

# 创建密码文件
vim /etc/rsync.passwd
rsyncuser:123qqq...A

chmod 600 /etc/rsync.passwd

# 重启服务
systemctl start xinetd
systemctl enable xinetd
rsync --daemon --config=/etc/rsyncd.conf # 以守护进程并加载指定配置文件的方式启动

4.主服务器启动计划任务,定时的将数据备份给备服务器

# 创建密码文件
vim /etc/rsync.passwd
123qqq...A

# 创建执行同步的脚本
vim /scripts/autobackup.sh
#!/bin/bash
rsync -avz  /www/ rsyncuser@192.168.1.2::wwwroot --password-file=/etc/rsync.passwd

chmod +x /scripts/autobackup.sh

# 将脚本添加到定时任务
crontab -u root -e
03 3 * * * . /scripts/autobackup.sh

 

提示:如果同步失败,查看防火墙873端口是否开启

posted @ 2019-04-01 13:48  dalichenpingan  阅读(219)  评论(0编辑  收藏  举报