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端口是否开启