侧边栏壁纸
博主头像
逢尔Seyu 博主等级

星光不负赶路人,时光不负追梦人

  • 累计撰写 30 篇文章
  • 累计创建 20 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Rsync服务

逢尔Seyu
2023-12-07 / 0 评论 / 0 点赞 / 56 阅读 / 0 字

Rsync的原理

rsync是Linux下同步文件的一个高效算法,用于同步更新两处计算机的文件和目录,并适当利用查找文件中不同块以减少数据传输。rsync的主要特点就是增量传输,支队变更的部分进行传送。

Rsync的三种传输模式

1.本地方式

单个主机本地之间的数据传输(此时类似于cp命令)

Local:  rsync [OPTION...] SRC... [DEST]

rsync         #备份命令(cp)
[options]   #选项
SRC...        #本地源文件
[DEST]      #本地目标文件

#本地拷贝数据示例
[root@backup ~]# rsync  -avz  /etc/passwd  /tmp/

2.远程方式

通过ssh通道传输数据,类似scp命令

#pull 拉取数据
1. 语法格式
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]

Pull            #拉取, 下载
rsync         #备份命令
[options]   #选项
[USER@]   #目标主机的系统用户
HOST        #目主机IP地址或域名
SRC...        #目标主机源文件
[DEST]      #下载至本地哪个位置

2. 示例
● 拉取远程文件
[root@backup ~]# rsync -avz root@172.16.1.41:/etc/hostname ./

● 拉取远程目录下的所有文件
[root@backup ~]# rsync -avz root@172.16.1.41:/root/ /backup/


----------------------------------------------------------------------------------
push推送数据
1. 语法格式
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Push        #推送, 上传
rsync       #备份命令
[options]   #选项
SRC...      #本地源文件
[USER@]     #目标主机的系统用户
HOST        #目主机IP地址或域名
[DEST]      #目标对应位置

2. 示例
rsync -avz /backup/2018-10-01 root@172.16.1.41:/tmp/

3.守护进程

pull 拉取数据
1. 语法格式
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]

rsync             #命令
[OPTION...]   #选项
[USER@]       #远程主机用户(虚拟用户)
HOST::          #远程主机地址  
SRC...            #远程主机模块(不是目录)
[DEST]          #将远程主机数据备份至本地什么位置  

2. 示例
● 拉取rsync备份服务的"backup模块"数据至本地/mnt目录
[root@nfs01 ~]# rsync -avz rsync_backup@192.172.16.1.41::backup/ /mnt/ --password-file=/etc/rsync.password
-------------------------------------------------------------------------------------------------------------
push 推送数据
1. 语法格式
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

rsync            #命令
[OPTION...]   #选项
SRC...            #远程主机模块(不是目录)
[USER@]       #远程主机用户(虚拟用户)
HOST::          #远程主机地址
[DEST]          #将远程主机模块备份至本地什么位置

2. 示例
● 将本地/mnt目录推送至rsync备份服务器的backup模块
[root@nfs01 ~]# rsync -avz /mnt/ rsync_backup@192.172.16.1.41::backup/ --password-file=/etc/rsync.password

Rsync备份

  • 增量备份

只备份增加的内容

  • 全量备份

备份所有的内容

Rsync的参数

-a           #归档模式传输, 等于-tropgDl
-v           #详细模式输出, 打印速率, 文件数量等
-z           #传输时进行压缩以提高效率
-r           #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t           #保持文件时间信息
-o           #保持文件属主信息
-p           #保持文件权限
-g           #保持文件属组信息
-l           #保留软连接
-P           #显示同步的过程及传输时的进度等信息
-D           #保持设备文件信息
-L           #保留软连接指向的目标文件
-e           #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN   #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
--bwlimit=100       #限速传输
--partial           #断点续传
--delete            #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件

Rsync部署流程

服务端配置

  1. 安装rsync服务

yum install -y rsync
  1. 配置rsync

vim /etc/rsyncd.conf

#运行进程的用户

uid = rsync

#运行进程的用户组

gid = rsync

#监听端口

port = 873

#无需让rsync以root身份运行,允许接收文件的完整属性

fake super = yes

#禁锢推送的数据至某个目录,不允许跳出该目录

use chroot = no

#最大连接数

max connections = 200

#超时时间

timeout = 600

#忽略错误信息

ignore errors

#对备份文件可读写

read only = false

#不允许查看模块信息

list = false

#定义虚拟用户,作为连接认证用户

auth users = rsync_backup

#定义rsync服务用户连接认证密码文件路径

secrets file = /etc/rsync.passwd

#日志

log file = /var/log/rsyncd.log

####################################

#定义模块信息

[backup]

#模块注释信息

comment = welcome to oldboyedu backup!

#定义接收备份数据的目录

path = /backup
  1. 创建一个用来运行rsync服务的用户

useradd -M -s /sbin/nologin rsync

  1. 创建备份目录,目录路径以及名称与**第2步**中模块信息的**path**一致

mkdir /backup
  1. 将属主属组修改为**第2步**中运行进程的用户和用户组

chown -R rsync.rsync /backup
  1. 虚拟用户配置

echo "rsync_backup:zls" > /etc/rsync.passwd

#授予600权限

chmod 600 /etc/rsync.passwd

7. 启动服务并设置为开机自启动

systemctl start rsyncd

systemctl enable rsyncd

客户端配置

1. 安装rsync服务

yum install -y rsync

2. 配置虚拟用户的密码,两种方式

  • 第一种方式 将服务端虚拟用户密码写入到配置文件并给与600权限

echo "zls" > /etc/rsync.pass

chmod 600 /etc/rsync.pass
  • 第二种方式 直接export

export RSYNC_PASSWORD=zls

0

评论区