rsync 端口 873
rsync scp区别
rsync 可实现增量及全量 (本地全量,远程守护进程增量)
scp 只能实现全量 传输加密
虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
-> rsync只对差异文件做更新,可以做增量或全量备份;而scp只能做全量备份。简单说就是rsync只传修改了的部分,如果改动较小就不需要全部重传,所以rsync备份速度较快;默认情况下,rsync 通过比较文件的最后修改时间(mtime)和文件的大小(size)来确认哪些文件需要被同步过去。
-> rsync是分块校验+传输,scp是整个文件传输。rsync比scp有优势的地方在于单个大文件的一小部分存在改动时,只需传输改动部分,无需重新传输整个文件。如果传输一个新的文件,理论上rsync没有优势;
-> rsync不是加密传输,而scp是加密传输,使用时可以按需选择。
全量:将目录中所有数据都进行传输备份(包含已经备份过的数据)
增量:将目录中新增的数据进行传输备份(可以包含不用已备份的)
scp 远程传输 文件 scp 10.0.0.41:/tmp/* ./ (属性可能变化 属主属组)
scp 远程传输 目录 scp -r 10.0.0.41:/tmp ./
scp 远程传输 文件 scp -p 10.0.0.41:/tmp/ ./ (保证文件属性不变)
scp 远程传输 目录 scp -rp 10.0.0.41:/tmp ./
作用:
1.避免文件丢失或损坏
2.将数据进行汇总管理 数据分析 (grep -r)
备份服务原理概念
增量备份数据管理
利用算法实现增量备份
1) 根据checksum算法识别出增量数据,将数据进行传递。保证文件准确性。
2)根据文件属性信息(修改时间,大小)的变化进行传递
rsync 三种工作方式
1)本地备份 数据工作方式 (类似cp 区别恢復数据时好找)
2)远程备份 数据工作方式 (类似spc)
3)守护进程备份 数据方式 (服务端/客户端)
rsync守护进程传输过程原理
rsync 守护进程时的傀儡用户
rsync_backup 推拉文件使用的用户
- 文件推送到服务端 服务端核实rsync_backup是否为可访问用户
- 核实输入的密码是否正确
- 将用户身份进行转换 虚拟用户rsnyc 以rsync用户身份存储到backup模块中
- rsync要根据用户备份目录权限
- 需要将备份数据属主属组进行改变
搭建过程:
服务端
一. 安装 默认就有
二. 编写配置文件
- 修改配置文件
vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "welcome to kk backup!"
path = /backup
- 创建密码文件
echo "rsync_backup:1" > /etc/rsync.password
- 创建虚拟rsync用户
useradd -M -s /sbin/nologin
- 创建备份目录
mkdir /backup
- 给目录属主属组rsync权限
chown -R rsync.rsync /backup
3.启动服务
6.sysetmcte start rsyncd
客户端
测试rsync -avz rsync_backup@172.16.1.41::backup/mnt ./
--port=873指定端口
命令
三种模式
1.本地模式
rsync -r /etc/nginx/ /tmp
2.远程模式
推:rsync -r nfs01/tmp 172.16.1.41:/etc/nginx
拉: rsync -r 172.16.1.41:/tmp nfs02/etc/nginx
3.守护进程
rsync -r rsync_backup@172.16.1.41::backup ./
目录后面有 / 和没有 / 的区别
sync 172.16.1.51:/tmp/ /etc/nginx
sync 172.16.1.51:/tmp /etc/nginx
有/:把目录下的文件推送过去
没有/: 推送目录及文件
uid = rsync 指定转换用户身份/备份目录管理用户
gid = rsync 指定转换用户组身份/备份目录管理用户组
port = 873 rsync的端口号
fake super = yes rsync是否伪装成超级用户
保证文件权限信息不变/不在显示cggrp命令错误提示
use chroot = no 安全策略
max connections = 200 rsync最大连接数
timeout = 300 每次连接超时时间,即没有数据传输时
pid file = /var/run/rsyncd.pid 记录rsyncd的pid号码,服务启动才会生成此文件
lock file = /var/run/rsync.lock rsyncd的锁文件信息,即当超过最大连接数时,应该给目录上锁
log file = /var/log/rsyncd.log rsyncd的日志文件
ignore errors 忽略错误
read only = false 目录文件可写权限,允许用户上传
list = false 列表为假,即不能列出模块信息
hosts allow = 172.16.1.0/24 允许复制的主机网段(白名单)
hosts deny = 0.0.0.0/32 拒绝的主机网段(黑名单)
auth users = rsync_backup 指定rsync认证的用户
secrets file = /etc/rsync.password 指定认证用户的密码文件
[backup] 模块
comment = "backup dir by oldboy" 模块的注释说明
path = /backup 要把文件备份到哪个目录
第二节课
rsync 常用命令参数
rsync -avz rsync_backup@172.16.1.41::backup
-a --archive 归档模式 -a = -rlptgoD
-v --verbose 显示传输过程
-z --compress 压缩
备份企业应用
备份服务多模块配置
vim /etc/rsyncd.conf
[backup]
comment = welcome to kk backup!
path = /backup
[data]
comment = welcome to kk backup!
path = /data
将主机数据进行区分
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/172.16.1.8
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/172.16.1.7
排除
- - exclude=kk/a.txt
rsync -avz /code/ --exclude=kk1/a.txt rsync_backup@172.16.1.41::backup/
相对路径不使用 ./
排除多个文件或目录
把多个文件名 写在一个文件中
sync -avz /code/ --exclude-from=/opt/exlude_file.txt rsync_backup@172.16.1.41::backup
强制异同步数据
(建议不要用)
- -delete
免交互传输
echo 1 > /mima
chmod 600 /mima
rsync -avz /code rsync_backup@172.16.1.41::backup --password-file=密码文件
实现数据传世访问控制
vim /etc/rsyncd.conf