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" [email protected]:/root/2 /root
push,推:向外。从本地推去到远端。
rsync命令 参数选项 目的路径 [认证用户]@[主机地址]:[源地址]
rsync -avz -e "ssh -p 22" /root/ [email protected]:/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< #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 [email protected]::backup --password-file=/etc/rsync.password 语法2 rsync命令 参数选项 本地路径 rsycn://[虚拟用户]@[主机地址]/[模块名] (4)测试成果。 [root@nfs01 ~]# rsync -avz /etc/hosts [email protected]::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/ [email protected]::backup 把本身/backup的内容推到rsync服务器的backup里。 rsync -az [email protected]::backup /backup 把服务器的内容拉到自己的/backup里。