rsync復(fù)制軟件應(yīng)用與實(shí)踐
what 什么是?
why 為什么要用?
1、什么是rsync?
rsync,全稱為Remote synchronization
是開源、高速的、數(shù)據(jù)復(fù)制(拷貝)工具。
2、rsync的作用
工作中需要定時(shí)/實(shí)時(shí)數(shù)據(jù)備份。本地服務(wù)器目錄、不同機(jī)器、冉機(jī)房之間的數(shù)據(jù)被封,都可以用rsync完成。
3、rsync功能特性

4、全量和增量區(qū)別
5、增量復(fù)制原理
使用 quick check算法,支隊(duì)增量的部分復(fù)制,根據(jù)大小屬性的額變化進(jìn)行復(fù)制。
2.x比對(duì)差異后復(fù)制,3.x一邊比對(duì)一邊復(fù)制。
6、rsync三種工作模式介紹
1)本地(local)
rsync就是一個(gè)命令
a.把數(shù)據(jù)從一個(gè)地方復(fù)制到另一個(gè)地方(僅在一臺(tái)機(jī)器增量),相當(dāng)于cp。
b.通過加參數(shù)實(shí)現(xiàn)刪除的功能,相當(dāng)于rm命令。
c.查看屬性信息功能,相當(dāng)于ls。
保持屬性
[root@backup ~]# ls /opt
[root@backup ~]# rsync /etc/hosts /opt
[root@backup ~]# ls /opt
hosts
[root@backup ~]# \cp /etc/hosts /opt
刪除實(shí)踐
[root@backup ~]# touch /null.txt
[root@backup ~]# cat /opt/hosts
127.0.0.1? ? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1? ? ? ? ? localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01
[root@backup ~]# rsync --delete /null.txt /opt/hosts
rsync: --delete does not work without --recursive (-r) or --dirs (-d).
rsync error: syntax or usage error (code 1) at main.c(1567) [client=3.1.2]
[root@backup ~]# rsync -r --delete /null.txt /opt/hosts
[root@backup ~]# cat /opt/hosts
2)遠(yuǎn)程shell模式
借助類似ssh隧道傳輸數(shù)據(jù),適合不同的機(jī)器之間復(fù)制。
pull,拉:從遠(yuǎn)端拉取到本地。
rsync -avz root@172.16.1.41:/opt/hosts /opt
rsync -avz -e "ssh -p 22" root@172.16.1.41:/opt/hosts /opt
push,推:從本地推到遠(yuǎn)端。
rsync -avz /etc/hosts root@172.16.1.41:/opt/
rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.41:/opt/
上述命令是等價(jià)的。-e 指定通道? ssh ssh服務(wù)連接客戶端? -p 22指定22端口。
[root@nfs01 ~]# rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.41:/opt/
root@172.16.1.41's password:
sending incremental file list
sent 44 bytes? received 12 bytes? 22.40 bytes/sec
total size is 332? speedup is 5.93
3)rsync 守護(hù)進(jìn)程模式
首先要搭建服務(wù)端(要有守護(hù)進(jìn)程),然后才能在客戶端實(shí)現(xiàn)推拉數(shù)據(jù)。企業(yè)運(yùn)維的重要模式,重點(diǎn)講??蛻舳苏Z法暫時(shí)不講。
rsync服務(wù)模式:*****開啟后臺(tái)進(jìn)程,接受別人訪問。
7、rsync命令參數(shù)

企業(yè)常用:-avz
8、rsync守護(hù)進(jìn)程模式應(yīng)用實(shí)踐
1)安裝
[root@shizhenghao ~]# rsync --version
rsync? version 3.1.2? protocol version 31
yum install rsync
2)配置配置文件/etc/rsyncd.conf
創(chuàng)建用戶和備份目錄
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1001(rsync) gid=1001(rsync) 組=1001(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4月? 15 12:12 /backup/
備份:
[root@shizhenghao ~]# cp /etc/rsyncd.conf {,.ori}

3)啟動(dòng)和檢查
rsync --daemon
systemctl start rsyncd
systemctl status rsyncd
systemctl enable rsyncd
[root@shizhenghao ~]# ps -ef|grep rsync |grep -v grep
root? ? ? 10746? ? ? 1? 0 11:39 ?? ? ? ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@shizhenghao ~]# netstat -lntup|grep 873
tcp? ? ? ? 0? ? ? 0 0.0.0.0:873? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? LISTEN? ? ? 10746/rsync? ? ? ?
tcp6? ? ? 0? ? ? 0 :::873? ? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? LISTEN? ? ? 10746/rsync?
面試題:如何查看某端口對(duì)應(yīng)什么服務(wù)?答案就是上面兩個(gè)。
4)配置密碼文件
[root@backup ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy
[root@backup ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 4月? 15 11:51 /etc/rsync.password
rsync服務(wù)端配置完成。
(2)以下操作都是在客戶端服務(wù)器
方法一:認(rèn)證密碼文件
[root@shizhenghao ~]# echo "oldboy" > /etc/rsync.password
[root@shizhenghao ~]# chmod 600 /etc/rsync.password
[root@shizhenghao ~]# cat /etc/rsync.password
oldboy
[root@shizhenghao ~]#? ls -l /etc/rsync.password
-rw------- 1 root root 7 4月? 15 11:57 /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 ~]# . /etc/bashrc
[root@nfs01 ~]# echo $RSYNC_PASSWORD
oldboy
rsync 客戶端 nfs01 客戶端