第一步先检查是否有rsync的安装包
第二部rsync 复制软件应用与实践
围绕着wwwh思想
1.什么 是rsync
rsync是开源,开源,高速的,可实现本地及远程,u安良以及增量的数据复制拷贝工具。
2.全量增量区别:全量复制
增量的话就是只复制oldboy.txt
作用:
工作中需要定时/实时数据备份。本地服务器目录、不同机器、
不同机房之间的数据备份。都可以用rsync完成。
4.功能:
支持拷贝普通文件与特殊文件,如链接文件,设备文件等。
支持排除指定文件或目录同步的功能,相当于打包命令tar的排除功 能。
可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等 所有属性均不改变。
可实现增量复制,既只复制发生变化的数据,因此数据传输效率很高。
可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)。
可以通过socket(进程方式)传输文件和数据(服务端和客户端)*。
支持匿名或认证(无需系统用户)进程模式传输,安全的进行数据备份及镜像
5.增量复制原理
使用quick,check算法,只对增量的部分复制,根据大小属性的变话进行复制,
比对差异后复制,一边比对一边复制。
6.rsync三种工作模式介绍
1.本地(local)
rsync 就是一个命令
rsync命令+参数选项+源目录或文件+目的目录后文件
2.rsync命令
a.把数据从一个地方复制到另一个地方(仅在一台机器增量),相当于cp。
b.通过加参数实现删除文件和清空文件内容的功能,相当于rm命令。
c.查看属性信息功能,相当于ls。
测试a
测试b
测试c
远程Shell模式
借助类似ssh隧道传输数据,适合不同的机器之间复制。
异地拷贝,相当于scp,区别scp是远程全量拷贝)
rsync [OPTION...] SRC... [DEST]
rsync命令 参数选项 [源目录或文件] 目的目录或文件
推语法
rsync [OPTION...] SRC... [USER@]HOST:[DEST]
rsync命令 参数选项 本地路径 [认证用户]@[主机地址]:[目标路径]
指定端口号推送
pull拉
语法:
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
rsync命令 参数选项 [认证用户]@[主机地址]:[源路径] 本地路径
rsync守护进程模式
首先要搭建rsync服务端(要有守护进程),然后才能在客户端实现推拉数据。
企业运维的重要模式,重点讲。
客户端语法暂时不讲。
rsync服务模式:*****开启后台进程,接受别人访问。
rsync命令参数:
-v, --verbose 显示输出过程
-z, --compress 压缩
-a, --archive 多参数集合(-rtopgDl)
-r, --recursive 递归
-t, --times 保持修改时间属性
-o, --owner 保持属主不变
-p, --perms 保持权限不变
-g, --group 保持用户组不变
-l, --links 保持拷贝软连接
-q, --quiet 安静的拷贝
--bwlimit=KBPS 限制I/O带宽,KBytes per second。
--delete 删除
--exclude 排除
--exclude-from 从文件中排除
企业常用参数组合:-avz或者-vzrtopg
rsync守护进程模式应用实践
以下操作都是在backup服务器
1)安装
[root@backup ~]# rsync --version
rsync version 3.1.2 protocol version 31
[root@backup ~]# yum install rsync(不需要)
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
fake super = yes
max connections = 200
timeout = 600
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 oldboyedu backup!
path = /backup/
EOF
man rsync 查命令的参数
man rsyncd.conf 查配置参数
上面内容的解释:
3)启动和检查
rsync --daemon(c6及以前)
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
lsof -i :873 由于这个lsof 我没有需要安装
保障传输的安全需要加密传输
方法1:认证密码文件
配置密码文件
测试免密推
.
课后作业
某公司里有一台 web 服务器,里面的数据很重要,但是如果硬盘坏了,数据
就会丢失,现在领导要求把数据做备份,这样 web 服务器数据丢失可以进行恢复,
要求如下:
每天晚上 00 点整在 web 服务器 A 上打包备份系统配置文件、网站程序目录
及访问日志并通过 rsync 命令推送到服务器 B 上备份保留(备份思路可以是先在
本地按日期打包,然后再推到备份服务器 B 上)
已知 3 台服务器主机名分别为 web01、backup 、nfs01,主机信息见下表:
表 2-7 全网备份主机信息表
服务器说明
外网 IP(NAT) SSH
用
内网 IP(NAT) 交换数据
用 主机名称
nginx web 服务器 10.0.0.7/24 172.16.1.7/24 web01
NFS 存储服务器 10.0.0.31/24 172.16.1.31/24 nfs01
rsync 备份服务器 10.0.0.41/24 172.16.1.41/24 backup
备份要求
每天晚上 00 点整在 Web 服务器上打包备份系统配置文件、网站程序目录及
访问日志并通过 rsync 命令推送备份服务器 backup 上备份保留
备份思路
可以是先在本地按日期打包,然后再推到备份服务器 backup 上;NFS 存储
老男孩教育 Linux 运维 58 期项目案例 www.oldboyedu.com
服务器同 Web 服务器实际工作中就是运维主要管理的全部服务器。
2.1.3 具体备份需求
所有服务器的备份目录必须都为/backup
要备份的系统配置文件包括但不限于:
a) 定时任务服务的配置文件 (/var/spool/cron/root) (适合 web 和 nfs 服
务器)。
b) 开机自启动的配置文件 (/etc/rc.local) (适合 web 和 nfs 服务器)。
c) 日常脚本的目录 (/server/scripts)。
Web 服务器站点目录假定为/var/html/www,如果没有可以先模拟创建。
Web 服务器访问日志路径假定为/app/logs,如果没有可以先模拟创建。
Web 服务器本地保留打包后的 7 天备份数据即可(本地留存不能多于 7 天,
因为太多硬盘会满) 。
备份服务器 backup 上,保留最近 7 天的备份数据,同时保留 6 个月内每周一
的所有数据副本。
备份服务器上,要按照备份数据服务器的内网 IP 为目录保存备份,备份的文
件按照时间名字保存。
需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据是否完整
进行检查。
每天早晨 8:00 把备份成功或失败结果信息发给系统管理员邮箱中。
表 2-8 服务器备份信息汇总表
服务器说明 备份目录 目录说明 备注
all server /backup 备份目录 统一服务器本地备份目录,便于管理
all server /var/spool/cron/root
定时任务服务配置
文件
all server /etc/rc.local
开机自启动配置文
件
all server /server/scripts 日常脚本目录 统一服务器本地脚本目录,便于管理
web server /var/html/www
web 服务器站点目
录 mkdir -p /var/html/www
web server /app/logs
web 服务器访问日
志路径 mkdir –p /app/logs