单机部署服务,通过docker数据卷将持久化数据映射到部署服务器本地,现在通过rsync将部署服务器的数据目录备份到备份服务器。
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

服务器资源

部署服务器:10.100.234.72
备份服务器:10.100.234.73
服务器操作系统:centos7.8

安装rsync,创建配置文件

yum install rsync
mkdir -p /root/backup
touch /root/backup/rsyncd.secrets
#内容为 账户名:密码
echo 'root:password'> /root/backup/rsyncd.secrets
touch /root/backup/rsyncd.motd
echo '10.100.234.72 backup.'> /root/backup/rsyncd.motd

vim /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
secrets file = /root/backup/rsyncd.secrets
motd file = /root/backup/rsyncd.motd
#指定运行端口,默认是873
port = 873
#指定服务端IP地址
address = 10.100.234.72
#用户远端的命令使用rsync访问共享目录
uid = root
#用户组
gid = root
#安全相关
use chroot = no
#最大连接数
max connections = 10
#可写
read only = yes
#禁止IP访问
hosts deny=*
#使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中
transfer logging = true
log format = %t %a %m %f %b
syslog facility = local3
#可以覆盖客户指定的IP超时时间 默认值不限制
timeout = 600

[www] #模块名称
#服务器提供访问的目录
path=/data/iflydocs-docker-deploy
#是否能列表
list=yes
##允许IP访问 多个IP以空格分割 客户端IP
hosts allow=10.100.234.73
#禁止IP访问
hosts deny=*
#忽略错误
ignore errors = true
#虚拟用户
auth users = root
#提交信息,便于识别
comment = This is billyu comment

启动rsync服务

#--config用于指定rsyncd.conf的位置,如果在/etc下可以不写
/usr/bin/rsync --daemon  --config=/etc/rsyncd.conf 

检测服务器防火墙 rsync默认端口 873

iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT

重启rsync

cat /var/run/rsyncd.pid | xargs kill -9
rm -rf  /var/run/rsyncd.pid
/usr/bin/rsync --daemon

备份服务器

yum install rsync
mkdir -p /root/backup
touch /root/backup/rsyncd.secrets
echo 'password' > /root/backup/rsyncd.secrets

touch /root/backup/rsync.sh
echo 'rsync  -avzP --delete  --password-file=/root/backup/rsyncd.secrets  10.100.234.72::www /data/iflydocs-docker-deploy' > /root/backup/rsync.sh 

chmod -R 777 /root/backup/rsync.sh

查看远程服务器列表

rsync  --list-only  --password-file=/root/backup/rsyncd.secrets 10.100.234.72::www

WeChat0f57cc2b22d4402a2b51009d6b212a3b.png

如果报错时查看部署服务器的rsync日志文件:/var/log/rsync.log

执行脚本,查看备份情况

bash /root/backup/rsync.sh

配置定时任务

crontab -e
#每10分钟执行一次同步
*/10 * * * * /root/backup/rsync.sh

实时同步方案

rsync + notify-tools
监听文件变化实时同步

参考博客:地址