一、rsync介绍
rsync 远程同步,免费开源的备份工具;
支持全量备份和增量备份;
默认端口:873
C/S架构
- 全量备份
- 增量备份
全量备份:每一次备份都是备份全部的数据
增量备份:备份上一次全备的不同数据
二、rsync的传输模式
- 本地传输
- 远程传输(使用的是系统用户,不安全)
- 守护进程(使用虚拟用户,安全)
本地传输
在同一个主机进行同步;把主机上的/etc 目录 同步到 /opt 目录下
和cp命令一样
rsync -avc /etc /opt
远程传输
在不同主机上同步文件;
192.168.22.133的/etc 同步到 192.168.22.134的/opt 目录下
rsync -avc /etc root@192.168.22.134:/opt
远程传输采用的是SSH协议
守护进程
环境准备
192.168.22.133(服务端) | |
192.168.22.134(客户端) |
安装
yum install -y rsync
配置
rpm -qc rsync 列出rsync的配置文件
q 查询
c 列出配置文件
vim /etc/rsyncd.conf
uid = rsync # rsync使用的用户
gid = rsync # 用户组
port = 873 # 端口
fake super = yes # 保留文件属性
use chroot = no # 限制到自己的目录
max connections = 200
timeout = 600
ignore errors
read only = false
list = false # 不列出信息
auth users = rsync_backup # 虚拟用户
secrets file = /etc/rsync.passwd # 密码文件路径
log file = /var/log/rsyncd.log
[backup] # 路径
comment = welcome to rsync
path = /backup # 真实的路径
创建用户
useradd -M -s /sbin/nologin rsync
没有登录shell 没有家目录
创建密码文件
cat /etc/rsync.passwd
rsync_backup:123
修改权限(不修改会报错)
chmod 600 /etc/rsync.passwd
chown -R rsync.rsync /backup
创建备份目录
mkdir /backup
启动
systemctl start rsyncd.service
测试
推送:[root@localhost1 opt]# rsync -avz /etc rsync_backup@192.168.22.133::backup
拉取:[root@localhost2 ~]# rsync -avz rsync_backup@192.168.22.133::backup/123.tx /opt
如果想要推送的话,localhost2也需要使用 守护进程模式
三、rsync的无差异同步、传输限速
rsync 无差异同步
--detele
两端同步的文件保持一致; 如果文件不一致,会删除除同步以外的文件
拉取:以服务端为准,删除客户端的多余的文件
推送:以客户端为准,删除服务端的多余的文件
rsync 传输限速
-P 显示传输速率
--bwlimit=1 限速1M
四、rsync常用选项
rsync 选项
常用 avz
-a #归档模式传输,等于-tropgD1
-v #详细模式输出,打印速率,文件数量等
-Z #传输时进行压缩以提高效率
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-P #显示同步的过程及传输时的进度等信息
-D #保持设备文件信息
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
-- bwlimit=100 #限速传输
--partial #断点续传
--delete #让目标目录和源目录数据保持一-致
五、总结
- rsync 是什么,能做什么
- rsync是远程同步工具
- 传输模式
- 本地传输
- 远程传输(系统用户,不安全)SSH协议 22
- 守护进程(虚拟用户,安全)rsync协议 873
- 传输方式
- pull 拉取(下载)
- push 推送(上传)
- rsync守护进程
- 安装rsync
- 配置/etc/rsyncd.conf
- 准备环境:创建用户、创建密码文件、授权、创建目录
- 启动
- 免密登录
- 1、使用文件免密传输
--password-file=文件名
chmod 600 文件名 - 2、变量
临时变量,重启客户端就失效 可以写入 /etc/profile .bashrc
export RSYNC_PASSWORD=123
- 1、使用文件免密传输