0
点赞
收藏
分享

微信扫一扫

linux架构day02:rsync

芥子书屋 2023-04-14 阅读 48

rsync

Rsync基本概述

rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于Unix/Linux/Windows等多种操作系统平台。

全量备份

image.png

将客户端的内容完全备份到服务端

增量备份

image.png

基于上一次的全量备份,将新增的备份过去
将服务端没有的文件从客户端增量备份过去

scp

# 不支持增量备份

# 推
scp 源文件 用户名@IP:对方路径
scp 5.png root@172.16.1.31:/tmp/

# 拉
scp 用户名@IP:对方路径 本地路径
scp root@172.16.1.31:/tmp/5.png /tmp

# 选项
-r 递归远程拷贝目录

rsync

c:client 客户端

s:server 服务端

c/s:客户端/服务端

b:browser 浏览器

s:server 服务端

b/s:浏览器/服务端

常用服务端口

rsync:873

http:80

http:443

ssh :22

telnet:23

rdp:3389

ftp:21

mariadb:3306

# 查看本机端口
netstat -lntup

rsync语法

本地
Local: rsync [OPTION...] SRC... [DEST]
rsync 选项 源文件 目标路径
# 案例 rsync ip.sh /tmp/ 类似于cp命令
远程
Access via remote shell
:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
# 拉 rsync [选项] 用户名@IP:目标路径 本地路径
# 案例 rsync -avz root@172.16.1.31:/opt/* /opt/

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
# 推 rsync [选项] 本地路径 用户名@IP:目标路径
# 案例 rsync -avz ./* root@172.16.1.7:/opt/
守护进程
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
# 拉 rsync [选项] [匿名用户名@]IP::模块名/目标文件 本地路径

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC...
# 推 rsync [选项] 本地路径 [匿名用户名@]IP::模块名
rsync://[USER@]HOST[:PORT]/DEST

#特性
# rsync 无论推还是拉都是可以实现增量备份
# 需要知道远端的用户名和正确密码

rsync选项

-a 归档模式传输 = rtpoglD
-----------------------------
-r 传递传输
-t 保持文件时间属性
-p 保持文件权限
-o 保持文件的属主信息
-g 保持文件属组信息
-l 保留软链接
-D 保持设备文件信息
------------------------------
-v 详细信息输出,打印速度,文件数量
-z 过程中打包压缩,速度快

环境准备

wanIP LanIP 主机 角色
10.0.0.31 172.16.1.31 nfs rsync客户端
10.0.0.41 172.16.1.41 backup rsync服务端

c/s

c client

s server

配置服务端

# 安装rsync
yum install -y rsync

# 查询rsync配置文件所在位置
rpm -qc rsync

# 编辑配置文件
uid = rsync # 服务启动用户
gid = rsync # 服务启动的用户组
port = 873 # 服务启动的端口873 (0~65535)
fake super = yes # 无需让rsync以root身份运行
use chroot = no # 禁锢推送的数据至某个目录,不允许跳出该目录
max connections = 200 # 最大链接数
timeout = 600 # 超时时间
ignore errors # 忽略错误信息
read only = false # 对备份文件可读写(只读=否)
list = false # 不允许查看模块信息
auth users = rsync_backup # 匿名用户 定义虚拟用户,用来做链接用户
secrets file = /etc/rsync.passwd # 定义rsync服务用户链接认证密码和文件路径
log file = /var/log/rsyncd.log # rsync日志路径
#####################################
[backup] # 模块名
comment = welcome to oldboyedu backup! # 模块的注释信息
path = /backup # 定义接收备份数据的目录路径

# 创建用户
useradd rsync -s /s
bin/nologin -M

# 创建备份目录
mkdir /backup

# 授权备份目录的属主和属组必须是服务端的
chown rsync.rsync /backup/

# 创建密码文件
echo 'rsync_backup:123' > /etc/rsync.passwd
[root@backup opt]# cat /etc/rsync.passwd
rsync_backup:123

# 授权rsync要求密码文件的权限是600
chmod 600 /etc/rsync.passwd

# 启动服务
systemctl start rsyncd

# 加入开机自启
systemctl enable rsyncd

# 检查进程
[root@backup opt]# ps -ef | grep rsync
root 17065 1 0 11:24 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 17085 6973 0 11:26 pts/0 00:00:00 grep --color=auto rsync

# 检查端口
[root@backup opt]# netstat -lntup | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 17065/rsync
tcp6 0 0 :::873 :::* LISTEN 17065/rsync

配置客户端

# 安装rsync
yum install -y rsync

# 设置密码
echo '123' > /etc/rsyncd.pass

# 授权密码文件
chmod 600 /etc/rsyncd.pass

# 守护进程模式的推和拉

# 推
rsync -avz 1.sh rsync_backup@172.16.1.41::backup

# 拉
rsync -avz rsync_backup@172.16.1.41::backup/* /tmp

拓展选项

--exclude=PATTREN # 指定排除不需要的文件模式
--exclude-from=file # 文件名所在的目录
--bwlimit=100 # 限速传输
--partial # 断点续传
--delete # 让目标目录和源目录保持一致

# 免密传输
--password-file==xxx # 指定密码文件的路径,使用密码文件实现免密传输

# 指定端口
--port 端口
举报

相关推荐

Day02

day02

uniapp—day02

shell day02

机器学习-Day02

Day02(进制转换)

0 条评论