Rsync服务 yum -y install rsync
1、什么是Rsync?
全称 Remote synchronization rsync
开源、高速、数据复制(拷贝)工具
2、Rsync的作用
工作中需要数据备份。不同机器不同机房之间的数据备份。
都可以用Rsync完成。
3、Rsync功能特性
1.支持拷贝普通文件与特殊文件,如链接文件,设备文件等。
2.支持排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
3.可以做到保持源文件或目录权限、时间、软硬链接、属主、组等所有属性不变
4.可实现增量复制,即只复制发生变化的数据,数据传输效率高
5.可以使用rcp,rsh,ssh等方式来配合隧道加密传输文件(rsync本身不对数据加密)
6.可以使用socket(进程方式)传输文件和数据(C/S)
7.支持匿名或认证(无需系统用户)进程模式传输,安全的进行数据备份及镜像。
增量复制 :只复制发生变化的数据。
全量复制 :全部复制
4.Rsync软件复制原理介绍。
quick check算法,只对改变部分复制,根据大小属性变化。
2.x比对差异后复制,3.x一边比对一边复制。
5.Rsync三种工作模式介绍
5.1本地(local)
rsync是一个命令
命令操作:rsync命令
1.把数据从一个地方复制到另一个地方,相当于cp。
保持属性 rsync -zrtopg /1 /2
-r 让/b和/null保持一致。
ls -lhi
2.通过加参数实现删除,相当于rm。
rsync --delete /null /1
3.查看属性信息功能,相当于ls。
rsync 1
5.2远程shell模式
借助类似ssh隧道传输数据,适合不同的机器之间的传输。
pull,拉:向里。从远端拉取到本地。
rsync命令 参数选项 [认证用户]@[主机地址]:[源地址] 本地路径
rsync -avz -e "ssh -p 22" root@172.16.1.41:/root/2 /root
push,推:向外。从本地推去到远端。
rsync命令 参数选项 目的路径 [认证用户]@[主机地址]:[源地址]
rsync -avz -e "ssh -p 22" /root/ root@172.16.1.41:/root/2
rsync*****
null和null/ 区别 null是目录和目录下的内容
null/只是目录下的内容 不含本身。
5.3rsync 守护进程模式
首先要搭建rsync服务端(要有守护进程),然后才能在客户端实现推拉数据。
工作中的重要模式*****
rsync服务模式:开启后台进程, 接受别人访问。
6.rsync命令参数
-v 显示输出过程
-z 压缩
-a -rgDl top
-r 递归
-t 保持修改时间属性
-o 保持属主不变
-p 保持权限不变
-g 保持用户组不变
-l 保持拷贝软链接
-q 安静的拷贝
-e 使用的传输协议
-D 保持设备文件信息
--delete 删除
--bwlimit=KBPS 限制I/O带宽,KBytes per second
--exclude 排除
--exclude-from 从文件中排除
企业中常用参数组合:-avz或者-vzrtopg
8.rsync守护进程模式应用实践
8.1安装 yum -y install rsync
8.2配置配置文件/etc/rsyncd.conf
cp /etc/rsyncd.conf{,.ori}
cat >/etc/rsyncd.conf<<EOF
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync ==》》管理备份目录的用户
gid = rsync ==》》管理备份目录的用户组
use chroot = no ==》》安全功能,数据是否锁定到备份目录
max connections = 200 ==》》同时多少客户端访问。
timeout = 600 ==》》超时时间
fake super = yes ==》》不用root用户也可以存储文件的完整属性。
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 ==》》存放密码的文件 格式 用户:密码 权限600
[backup] ==》》[模块名]远程访问使用模块名访问
comment = welcome to oldboyedu backup! 》》说明注释
path = /backup/ ==》》服务端用户备份的目录,用户和组,rsync.rsync
EOF
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/ -R 修改其及其下的子文件。
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 Apr 15 12:12 /backup/
8.3启动和检查
systemctl start rsyncd 启动服务
systemctl stop rsyncd 停止服务
systemctl enable rsyncd 开启开机自启动服务
systemctl disable rsyncd 关闭开机自启动服务
systemctl restart rsyncd 重启服务
systemctl status rsyncd 查看服务状态
ps -ef|grep sync|grep -v grep #检查进程
netstat -lntup|grep 873检查端口
lsof -i :873 列出873端口网络连接
-i :rsync 查看网络连接
-p pid 进程打开状态
8.4配置密码文件
echo "rsync_backup:oldboy">>/etc/rsync.password
chmod 600 /etc/rsync.password
1.配置/etc/rsyncd.conf
2.创建用户
3.创建备份目录
3.配置密码文件 /etc/rsync.password
Rsync服务端配置完成。
(2)客户端配置
方法1:认证密码文件
[root@nfs01 ~]# echo "oldboy" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password
[root@nfs01 ~]# cat /etc/rsync.password
oldboy
[root@nfs01 ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 4月 15 11:55 /etc/rsync.password
方法2:配置环境
[root@nfs01 ~]# echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
[root@nfs01 ~]# tail -1 /etc/bashrc
export RSYNC_PASSWORD=oldboy
[root@nfs01 ~]# 断开重连, . source
[root@nfs01 ~]# echo $RSYNC_PASSWORD
oldboy
Rsync客户端配置完成。
(3)守护进程模式,客户端rsync的命令语法
配置服务器端守护进程,实现数据传输:
1、服务器端守护进程 2、客户端执行命令
拉门、推门、思考:
pull,拉:向里。从远端拉取到本地。
语法1: Rsync_backup backup
rsync命令 参数选项 [虚拟用户]@[主机地址]::[模块名] 本地路径
语法2:
rsync命令 参数选项 rsync://[虚拟用户]@[主机地址]/[模块名] 本地路径
push,推:向外。从本地推去到远端。
语法1
rsync命令 参数选项 本地路径 [虚拟用户]@[主机地址]::[模块名]
rsync -avz /etc rsync_backup@172.16.1.41::backup
--password-file=/etc/rsync.password
语法2
rsync命令 参数选项 本地路径 rsycn://[虚拟用户]@[主机地址]/[模块名]
(4)测试成果。
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
sending incremental file list
hosts
sent 223 bytes received 43 bytes 532.00 bytes/sec
total size is 332 speedup is 1.25
man rsync 查命令的参数
man rsync.conf查配置参数
tar zcfP /var/spool/cron/root /etc/rc.local /server/scripts
/var/html/www /app/logs /
总结
1.安装 yum -y install rsync 开启服务等
服务端
2.配置文件/etc/rsyncd.conf
path = /backup/ ==》》服务端用户备份的目录,用户和组,rsync.rsync
secrets file = /etc/rsync.password ==》》存放密码的文件 格式 用户:密码 权限600
[backup] ==》》[模块名]远程访问使用模块名访问
等等
3.创建rsync用户,创建/backup(备份用的目录),修改其属主属组为rsync
4.配置密码文件
echo "rsync_backup:oldboy">>/etc/rsync.password
chmod 600 /etc/rsync.password
客户端
1.修改密码环境变量。
echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
. /etc/bashrc 重置环境
echo $RSYNC_PASSWORD 检查
oldboy
成果:
rsync -az /backup/ rsync_backup@172.16.1.41::backup 把本身/backup的内容推到rsync服务器的backup里。
rsync -az rsync_backup@172.16.1.41::backup /backup 把服务器的内容拉到自己的/backup里。