关于备份工具rsync,你不知道的事

小编推荐
有效的备份方案是保障系统及数据安全的重要手段,在服务器中,通常会结合计划任务、Shell脚本来执行本地备份。为了进一步提高备份的可靠性,使用异地备份是非常有必要的。比如针对测试站点的同步备份,如果想要实现快速、安全、高效的异地备份,就需要使用rsync。
本期,小编就同大家说说rsync的那些事,并带大家快速上手rsync~

图1-rsync异地备份示例
1 rsync是什么
rsync是linux系统下的数据镜像备份工具。
rsync的“两姐妹”
1)sync同步:刷新文件系统环境,强制将修改过的数据块写入磁盘,并且更新速度超级快;
2)async异步:将数据先放到缓冲区,再周期性(一般是30秒)地同步到磁盘。
rsync的特点
可以镜像保存整个目录树和文件系统;
可以保存原有的权限(permission,mode)、owner、group、时间(修改时间,modify time)、软硬链接、文件acl、文件属性(atributes)信息等。
传输效率高,使用同步算法,只比较变化的文件(增量备份),以下述场景为例:
A服务器上有三个文件file1.txt、file2.txt 、file3.txt,其中file3.txt是新增的;B服务器上有二个文件file1.txt、file2.txt。
当使用rsync实现A和B服务器之间的数据同步时,B服务器只会同步file3.txt(增量部分)。
支持匿名传输,方便网站镜像;也可以做验证,加强安全。
2 rsync怎么用
步骤一:环境准备
1)关闭防火墙,相关命令如下:
systemctl stop firewalld systemctl disable firewalld setenforce 0
2)关闭selinux,相关命令如下:
vim /etc/selinux/config SELINUX=disabled
3) 更改主机名称,相关命令如下:
hostnamectl set hostname postgresql.kingdeeCosmic.com hostnamectl set hostname postgresql_backup.kingdeeCosmic.com
4)更改IP地址(静态IP),相关命令如下:
[root@comic-ptest ~] # cat /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=none DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=yes NETMASK=255.255.255.0 IPADDR=172.20.158.180 GATEWAY=172.20.71.1 DNS1=192.168.1.13 DNS2=192.168.1.14
5) 同步网络时间,相关命令如下:
yum -y install ntp ntpdate ntpdate cn.pool.ntp.org
注:使用linux服务器,需要能访问广域网。
步骤二:软件配置
默认情况下,rsync只是作为一个命令来使用(备注:在查询进程时,找不到对应的服务),但是rsync提供了一种系统服务的实现方式。
rsync以服务方式启动
rsync对外提供服务流程为:端口监听→启动服务→启动脚本→配置文件。关键步骤如下:
1)启动rsyncd服务(Centos6没有、Centos7有) ,相关命令如下:
systemctl start rsyncd&&ps -ef |grep rsync
rsyncd服务的配置文件为“/etc/rsync.config”,文件参数解析如下图所示:

图2-rsync服务配置文件参数解析
小知识:
如果rsync作为系统服务单独运行,则其底层不需要ssh服务。
1. rsync默认依赖ssh访问,当ssh端口变更时,可自定义ssh通信端口,相关命令如下:
rsync -e "ssh -p 22" -av postgresql_bak_20221001.tar.gz root@192.168.10.100:/root
2. rsync ssh免密操作,相关命令如下:
ssh-keygen -t rsa -P ""ssh-copy-id root@192.168.10.100
rsync服务访问认证
为确保远程同步安全,需配置密码鉴权策略:
1) 服务端配置操作
首先,编辑rsyncd.config,命令如下所示:
auth user = kingdee1,kingdee2 #用户名 secrets file = /etc/rsyncd.secrets #密码文件
rsyncd.secrets文件内容如下:
kingdee1:1234567 kingdee1:1234567
然后,修改密码文件权限并重启rsync服务,如下所示:
chmod 600 /etc/rsyncd.secrets systemctl restart rsyncd
2) 客户端验证操作,命令如下所示:
rsync -av user1@192.168.10.100::app ./ password #密码交互
步骤三:远程同步
对于远程文件同步,有以下两种方式:
方式一:Push:上传文件到远程服务端
命令格式为:rsync -av 本地文件或目录 远程服务器名称@远程服务器IP地址:目标路径,示例如下:
rsync -av postgresql_bak_20221001.tar.gz root@192.168.10.100:/opt
方式二:Pull:下载文件到本地服务器端
命令格式为:rsync -av 远程用户名@远程服务器的IP:目标文件或目录 本地存储位置,示例如下:
rsync -av root@192.168.10.100:/opt/postgresql_bak_20221001.tar.gz ./
3 rsync应用案例
3.1 定时同步备份案例

图3-定时同步备份示例
服务端操作
步骤一:创建对应目录;
步骤二:将rsync作为后台程序运行,依次执行下述命令:
1)编辑rsyncd.config,如下所示:
[app]pathc = /opt/postgresql/pg_dataslog file = /var/log/rsync.log
2)启动rsync服务,如下所示:
[app] pathc = /opt/postgresql/pg_datas log file = /var/log/rsync.log
3)验证服务成功启动,如下所示:
netstat -tnulp|grep 873
客户端操作
步骤一:创建对应目录;
步骤二:将rsync作为系统服务运行,依次执行下述命令:
1)编辑rsyncd.config,如下所示:
[app]pathc = /opt/postgresql_bak/pg_dataslog file = /var/log/rsync.log
2)重新启动rs
关于备份工具rsync,你不知道的事
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



