背景描述:
公司有十来台服务器,其中含有数据库、应用服务器、FTP服务器、文件共享服务器,其中有windows Server服务器、Linux服务器,考虑到数据安全!
为达到数据备份目的我们先在同局域网做数据异机备份,在异机的基础上再实现数据的异地备份,服务器我们使用Linux,Windows Server 数据同步我们采用rsync+cwRsync实现文件同步备份,Linux-linux使用rsync!
一、什么是rsync
sync,remote synchronize 顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync 是用 “rsync 算法” 提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过 ssh 方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。
rsync 包括如下的一些特性:
能更新整个目录和树和文件系统
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等
对于安装来说,无任何特殊权限要求
对于多个文件来说,内部流水线减少文件等待的延时
能用 rsh、ssh 或直接端口做为传输入端口
支持匿名 rsync 同步文件,是理想的镜像工具
二、在Linux上搭建rsync服务器
①、安装rsync服务器
yum -y install rsync
systemctl enable rsyncd
systemctl start rsyncd
查看服务状态
[root@Data-Backup ~]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2020-12-01 09:58:47 CST; 30min ago
Main PID: 31454 (rsync)
Tasks: 1
Memory: 5.2G
CGroup: /system.slice/rsyncd.service
└─31454 /usr/bin/rsync --daemon --no-detach
Dec 01 09:58:47 Data-Backup systemd[1]: Started fast remote file copy program daemon.
②、修改rsync服务器端配置文件
rsync 的主要有以下三个配置文件 rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器显示信息)
[root@Data-Backup ~]# cat /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
uid = nfsuser #rsync 启动用户,同步备份的目录属主需要修改为该用户,否则会报没有权限!
gid = nfsuser #rsync 组
use chroot = yes
# max connections = 4
pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
log file = /var/log/rsyncd.log
port = 5286 #修改rsync默认端口,安全为上尽量不要使用默认端口!
# [ftp]
# path = /home/ftp
# comment = ftp export area
[bakup-11]
path = /opt/nfs_data/test/172.16.1.11/jenkins #备份目录
comment = k8s_11
read only = no
list=no
auth user= creditroot #认证用户
hosts allow = 172.16.1.11 #允许连接的IP地址
③、创建账号密码文件,并授予600权限!
[root@mirror ~]# cat /etc/rsyncd.secrets
creditroot:************
slieoruser:************
④、创建同步备份目录,并修改属主为配置中设置的用户,本位为nfsuser
[root@mirror ~]# mkdir -p /opt/nfs_data
[root@mirror ~]# chown -R nfsuser:nfsuser /opt/nfs_data/ #修改文件夹属主
三、下载配置cwRsync作为windows数据同步备份客户端
已上传百度网盘
链接:https://pan.baidu.com/s/1MvDZM0E6CcQp7vpPMcsu9w
提取码:bahc
复制这段内容后打开百度网盘手机App,操作更方便哦
或通过官网下载https://www.itefix.net/cwrsync
新建bat脚本执行rsync同步更方便!
D:\Soft\cwRsync\rsync -avz --port=5286 --progress /cygdrive/d/Services --bwlimit=1000 --password-file=/cygdrive/d/Soft/cwRsync/rsync.ps creditroot@10.20.11.127::bakup-123
#软件目录
#D:\Soft\cwRsync\rsync
#同步参数
# -avz
#同步端口
# --port=5286 如果是默认端口可以去掉!
#需要同步的本地目录
#/cygdrive/d/Services
#同步认证密码
#--password-file=/cygdrive/d/Soft/cwRsync/rsync.ps
#同步认证的用户,rsync服务器地址,同步模块名称
#creditroot@10.20.11.127::bakup-123
以上软件下载好,配置好密码文件,建好bat脚本就可以运行看看效果了!
为了达到定期备份的目的,可以通过window任务计划添加计划定期执行同步备份
关于windows下添加任务计划定制执行bat脚本可以参考:https://blog.csdn.net/qq1049/article/details/78676504
四、linux安装rsync作为备份客户端
①、安装rsync
yum -y install rsync
②、同样作为客户端只需要新建一个密码文件,并给与600权限
[root@mirror ~]# cat /etc/rsyncd.secrets
creditroot:************
slieoruser:************
③、从rsync拉取文件到本地服务器
rsync -avz --password-file=/root/passwd admin@192.168.204.130::common /tmp
④、将本地文件同步备份到rsync服务器
rsync -avz --port=5286 --password-file=/etc/rsyncd.secrets /opt/nfs_data creditroot@192.168.204.130::backup-production
登录rsync服务器查看备份目录是否有文件进来,以上就以达到数据备份的目的了。
五、异地备份
这一步就很简单了,在阿里云购买一台服务器安装好rsync作为服务器端,将备份服务器的备份数据同步到阿里云异地备份就OK了!