? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rsync復(fù)制軟件應(yīng)用與實(shí)踐
1蜂怎、什么是rsync倦西?
全稱Remote ?synchronizatioon縮寫rsync
開源倍宾、高速的耳标、可實(shí)現(xiàn)本地以及遠(yuǎn)程醇坝,全量以及增量的數(shù)據(jù)復(fù)制(拷貝)工具。
2次坡、全量和增量的區(qū)別:
全量復(fù)制全部呼猪,增量復(fù)制只復(fù)制新增加的。
3砸琅、rsync的作用:
工作中需要定時(shí)\實(shí)時(shí)數(shù)據(jù)備份宋距。本地服務(wù)器目錄不同機(jī)器、不同機(jī)房之間的數(shù)據(jù)備份症脂。都可以用rsync來完成
4谚赎、rsync的功能特性
支持拷貝普通文件與特殊文件,如鏈接文件诱篷,設(shè)備文件等壶唤。
支持排除指定文件或目錄同步的功能,相當(dāng)于打包命令tar的排除功能兴蒸。
可以做到保持源文件或目錄的權(quán)限视粮、時(shí)間、軟硬連接橙凳、屬主蕾殴、組等所有屬性均不改變。
可實(shí)現(xiàn)增量復(fù)制岛啸,既只能復(fù)制發(fā)生變化的數(shù)據(jù)钓觉,因此數(shù)據(jù)傳輸效率很高。
可以使用rcp,rsh,ssh等方式來配合進(jìn)行隧道加密傳輸文件(rsync本身不對(duì)數(shù)據(jù)加密)坚踩。
支持通過socket(進(jìn)程方式)傳輸文件和數(shù)據(jù)(服務(wù)端和客戶端)荡灾。
支持匿名或認(rèn)證(無需系統(tǒng)用戶)進(jìn)程模式傳輸,安全的進(jìn)行數(shù)據(jù)備份及鏡像瞬铸。
rsync的版本對(duì)比:
在CentOS5系統(tǒng)上批幌,rsync軟件版本默認(rèn)為2.x,同步增量復(fù)制數(shù)據(jù)原理是把所有的文件對(duì)比一遍嗓节,然后進(jìn)行再進(jìn)行數(shù)據(jù)同步荧缘。在CentOS6和7系統(tǒng)上,rsync軟件版本默認(rèn)為3.x拦宣,增量復(fù)制數(shù)據(jù)原理是一邊對(duì)比差異截粗,一遍對(duì)差異的數(shù)據(jù)部分進(jìn)行復(fù)制信姓。
5、增量復(fù)制原理:
使用quick ?check算法绸罗,只對(duì)增量的部分復(fù)制意推,根據(jù)大小屬性的變化進(jìn)行復(fù)制。
6珊蟀、rsync三種工作模式介紹:
6.1本地(local)模式
語法:
rsync就是一個(gè)命令
rsync ?????[OPTION...] ??????SRC... ???????????[DEST]
rsync命令 ??參數(shù)選項(xiàng) ?[源目錄或文件] ???目的目錄或文件
在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描扯。
實(shí)踐:
A:拷貝實(shí)踐
[root@backup ~]# ls /opt
[root@backup ~]# rsync /etc/hosts /opt/
[root@backup ~]# ls /opt/
hosts
[root@backup ~]# \cp /etc/hosts /opt/
[root@backup ~]# ls /opt/
Hosts
保持屬性復(fù)制:
[root@backup ~]# rsync -zrtopg /etc/hosts /opt/
[root@backup ~]# ls -l /etc/hosts /opt/hosts
-rw-r--r--. 1 root root 332 Apr 14 17:59 /etc/hosts
-rw-r--r--. 1 root root 332 Apr 14 17:59 /opt/hosts
B:刪除實(shí)踐
[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 -r --delete /null.txt /opt/hosts
[root@backup ~]# cat /opt/hosts
刪除目錄下所有檔:
[root@backup ~]# mkdir /null
[root@backup ~]# rsync -r --delete /null/ /opt/#后面的opt和前面的null的內(nèi)容保持一致。
[root@backup ~]# ls /opt/
[root@backup ~]#
C:查看屬性
[root@backup ~]# rsync /etc/hosts
-rw-r--r-- ???????????332 2019/04/14 17:59:48 hosts
6.2遠(yuǎn)程Shell模式
借助類似ssh隧道傳輸數(shù)據(jù)趟薄,適合不同的機(jī)器之間復(fù)制绽诚。
異地拷貝,相當(dāng)于scp杭煎,
pull拉:從遠(yuǎn)端拉取到本地恩够。
語法:
rsync ????[OPTION...] [USER@]HOST:SRC... ?????????????[DEST]
rsync命令 參數(shù)選項(xiàng) [認(rèn)證用戶]@[主機(jī)地址]:[源路徑] 本地路徑
rsync -avz root@172.16.1.41:/opt/hosts /opt/
push推:從本地推到遠(yuǎn)端。
語法:
rsync ????[OPTION...] ??SRC... ?[USER@]HOST:[DEST] ???????
rsync命令 參數(shù)選項(xiàng) 本地路徑[認(rèn)證用戶]@[主機(jī)地址]:[目標(biāo)路徑]
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?listsent?44?bytes??received?12?bytes??22.40?bytes/sectotal?size?is?332??speedup?is?5.93
推拉:
A:參照物,執(zhí)行命令的機(jī)器也切。
B:root@172.16.1.41?使用的用戶和主機(jī)扑媚,就用主機(jī)和用戶的密碼。
強(qiáng)調(diào)一個(gè)重點(diǎn):只適合rsync
null和null/區(qū)別雷恃,null是目錄和目錄下的內(nèi)容
null/知識(shí)目錄下的內(nèi)容疆股,不含本身。
6.3rsync守護(hù)進(jìn)程模式
首先要搭建rsync服務(wù)端(要有守護(hù)進(jìn)程)倒槐,然后才能在客戶端實(shí)踐推拉數(shù)據(jù)旬痹。
企業(yè)運(yùn)維:工作中重要的。
rsync服務(wù)模式:開區(qū)后臺(tái)進(jìn)程讨越,接受別人訪問两残。
7、rsync命令參數(shù):
rsync命令參數(shù):
-v, --verbose顯示輸出過程
-z, --compress壓縮
-a, --archive多參數(shù)集合(-rtopgDl)
-r, --recursive遞歸
-t, --times保持修改時(shí)間屬性
-o, --owner保持屬主不變
-p, --perms保持權(quán)限不變
-g, --group保持用戶組不變
-l, --links保持拷貝軟連接
-q, --quiet安靜的拷貝
--bwlimit=KBPS限制I/O帶寬把跨,KBytes per second人弓。
--delete刪除
--exclude排除
--exclude-from從文件中排除
企業(yè)常用參數(shù)組合:-avz或者-vzrtopg
8、rsync守護(hù)進(jìn)程模式應(yīng)用實(shí)踐
(1)以下操作是在backup中节猿。
8.1安裝
查看版本:[root@backup ~]# rsync --version
rsync ?version 3.1.2 ?protocol version 31
8.2默認(rèn)的配置檔/etc/rsyncd.conf
配置檔:
翻譯:
要了解知識(shí)的源頭:
Man rsync查命令的參數(shù)
man rsyncd.conf
創(chuàng)建:
[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1001(rsync) gid=1001(rsync) groups=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 Apr 15 12:12 /backup/
8.3啟動(dòng)和檢查
rsync --daemon(c6及以前)
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
查看端口:
[root@backup?~]#?ps?-ef|grep?sync|grep?-v?grep??#檢查進(jìn)程root???????7521??????1??0?11:39??????????00:00:00?/usr/bin/rsync?--daemon?--no-detach[root@backup?~]#?netstat?-lntup|grep?873?#檢查端口tcp????????0??????0?0.0.0.0:873?????????????0.0.0.0:*???????????????LISTEN??????7521/rsync??????????tcp6???????0??????0?:::873??????????????????:::*????????????????????LISTEN??????7521/rsync??????????[root@backup?~]#?lsof?-i?:873?#檢查端口COMMAND??PID?USER???FD???TYPE?DEVICE?SIZE/OFF?NODE?NAMErsync???7521?root????3u??IPv4??41439??????0t0??TCP?*:rsync?(LISTEN)rsync???7521?root????5u??IPv6??41440??????0t0??TCP?*:rsync?(LISTEN)
面試題:
8.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ù)端配置完成票从。
[if !supportLists](2)[endif]以下操作都是在客戶端服務(wù)器
以下方法2選1
方法1:認(rèn)證密碼檔
[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 Apr 15 11:56 /etc/rsync.password
[root@nfs01 ~]#
方法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配置完成
[if !supportLists](3)[endif]rsync守護(hù)進(jìn)程模式漫雕,客戶端rsync的命令語法:
配置服務(wù)器端守護(hù)進(jìn)程,實(shí)現(xiàn)數(shù)據(jù)傳輸
1. 服務(wù)器端守護(hù)進(jìn)程峰鄙。2.客戶端執(zhí)行命令浸间。
拉門、推門思考:
pull,拉:從遠(yuǎn)端拉取到本地吟榴。
語法1(常用):
rsync ????[OPTION...] [USER@]HOST::SRC... ?????????????????[DEST]
rsync命令 參數(shù)選項(xiàng) [虛擬用戶]@[主機(jī)地址]::[模塊名] 本地路徑
語法2:
rsync ????[OPTION...] rsync://[USER@]HOST::SRC... ??????????????[DEST]
rsync命令 參數(shù)選項(xiàng) rsync://[虛擬用戶]@[主機(jī)地址]/[模塊名] 本地路徑
push,推:從本地推到遠(yuǎn)端魁蒜。
語法1(常用): ????????????????
rsync ????[OPTION...] ??[DEST] ???????[USER@]HOST::SRC... ?????????????????
rsync命令 參數(shù)選項(xiàng) 本地路徑[虛擬用戶]@[主機(jī)地址]::[模塊名] ?????
語法2:
rsync ????[OPTION...] ???[DEST] rsync://[USER@]HOST::SRC ????????????
rsync命令 參數(shù)選項(xiàng) 本地路徑 rsync://[虛擬用戶]@[主機(jī)地址]/[模塊名] ?
(4)測(cè)試成功
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
sent 89 bytes ?received 49 bytes ?276.00 bytes/sec
total size is 332 ?speedup is 2.41
rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
服務(wù)端檢查:
[root@backup ~]# ls /backup/
hosts
[root@backup ~]# ls /backup/
etc ?hosts
fake super ?= ?yes不用root用戶可以存儲(chǔ)檔的完整屬性
重啟服務(wù):
[root@backup ~]# systemctl restart rsyncd
第二種語法:第二種語法:
[root@nfs01 ~]# rsync -avz /etc rsync://rsync_backup@172.16.1.41/backup
sending incremental file list
sent 52,070 bytes ?received 644 bytes ?105,428.00 bytes/sec
total size is 31,244,350 ?speedup is 592.71
rsync