day 32 Rsync

一摧冀、什么是rsync菜拓?

Rsync瓣窄,英文全稱Remote synchronization 縮寫rsync笛厦,
是開源纳鼎、高速的、可實現(xiàn)本地以及遠程裳凸,全量以及增量的數(shù)據(jù)復制(拷貝)工具贱鄙。
官方鏈接資料:http://www.samba.org/ftp/rsync/rsync.html

二、全量和增量的區(qū)別

全量復制:

[root@nfs01 ~]# cp -a /etc/ /opt/
[root@nfs01 ~]# \cp -a /etc/ /opt
[root@nfs01 ~]# touch /etc/oldboy.txt
[root@nfs01 ~]# \cp -a /etc/ /opt/

增量復制:

只復制oldboy.txt

三:rsync的作用姨谷?

工作中需要定時/實時數(shù)據(jù)備份逗宁。本地服務(wù)器目錄、不同機器梦湘、不同機房之間的數(shù)據(jù)備份瞎颗,都可以用rsync完成。

四捌议、rsync功能特性

支持拷貝普通文件遇特殊文件哼拔,如鏈接文件,設(shè)備文件等瓣颅。
支持排除指定文件或目錄同步的功能倦逐,相當于打包命令tar的排除功能。
可以做到保持原文件或目錄的權(quán)限宫补、時間檬姥、軟硬鏈接、屬主粉怕、組等所有屬性均不改變健民。
可以實現(xiàn)增量復制,即只復制發(fā)生變化的數(shù)據(jù)贫贝,因此數(shù)據(jù)傳輸效率很高荞雏。
可以使用rcp,rsh,ssh等方式來配合進行和隧道加密傳輸文件(rsync本身不對數(shù)據(jù)加密)凤优。
可以通過socket(進程方式)傳輸文件和數(shù)據(jù)(服務(wù)端和控制端)*悦陋。
支持匿名或認證(無需系統(tǒng)用戶)進程模式傳輸,安全的進程數(shù)據(jù)備份及鏡像筑辨。

五俺驶、增量復制原理

使用quick check算法,只對增量的部分進行復制棍辕,根據(jù)大小屬性的變化進行復制暮现。
2.X比對差異后復制,3.X一般比對一遍復制楚昭。
https://coolshell.cn/articles/7425.html

六栖袋、rsync三種工作模式介紹

1)本地(local)

rsync就是一個命令
語法:

rsync           [OPTION...]          SRC...             [DEST]
rsync命令         參數(shù)選項         [源目錄或文件]    目的目錄或文件

命令操作:
rsync命令

a.把數(shù)據(jù)從一個地方復制到另一個地方(僅在一臺機器增量),相當于cp抚太。
b.通過加參數(shù)實現(xiàn)刪除文件和清空文件內(nèi)容的功能塘幅,相當于rm命令。
c.查看屬性信息功能尿贫。相當于ls电媳。

實踐:

a.拷貝實踐:

[root@backup ~]# ls /opt
[root@backup ~]# rsync /etc/hosts /opt
[root@backup ~]# ls /opt
hosts
[root@backup ~]# \cp /etc/hosts /opt

保持屬性:

[root@backup ~]# rsync -zrtopg /etc/hosts /opt/
[root@backup ~]# ls -lhi /etc/hosts /opt/hosts
16829878 -rw-r--r--. 1 root root 332 4月  12 11:24 /etc/hosts
   71373 -rw-r--r--  1 root root 332 4月  12 11:24 /opt/hosts

b.刪除實踐

1.刪除文件內(nèi)容:
[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 -r --delete /null.txt /opt/hosts
[root@backup ~]# cat /opt/hosts 
2.刪除目錄下所有文件:
[root@backup ~]# mkdir /null
[root@backup ~]# rsync -r --delete /null/ /opt/       #讓后面opt和前面null目錄內(nèi)容保持一致
[root@backup ~]# ls /opt/

c.查看屬性

[root@backup ~]# rsync /etc/hosts
-rw-r--r--            332 2019/04/12 11:24:41 hosts

2)遠程Shell模式

借助類似ssh隧道傳輸數(shù)據(jù),適合不同的機器之間復制庆亡。
異地拷貝匾乓,相當于scp,區(qū)別scp是遠程全量拷貝又谋。

拉門拼缝、推門思考:

pull,拉:從遠端拉取到本地彰亥。

語法:

rsync       [OPTION...]     [USER@]HOST:         SRC...    [DEST]
rsync命令     參數(shù)選項   [認證用戶]@[主機地址]:   [源路徑     本地路徑

push,推:從本地推到遠端咧七。

語法:

rsync    [OPTION...]   SRC...    [USER@]HOST:      [DEST]        
rsync命令  參數(shù)選項    本地路徑 [認證用戶]@[主機地址]:[目標路徑]

push實踐:

[root@nfs01 ~]# rsync -avz /etc/hosts root@172.16.1.41:/opt/ #加密傳輸。
The authenticity of host '172.16.1.41 (172.16.1.41)' can't be 
established.
ECDSA key fingerprint is 
SHA256:qZSBkrmOv7xO/63qOU1uLXkPyNVHdkqvrNAcAmXqNEk.
ECDSA key fingerprint is 
MD5:23:d0:cb:a9:f4:7c:0b:eb:2d:07:00:e1:a3:12:d8:33.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.41' (ECDSA) to the list of 
known hosts.
root@172.16.1.41's password: 
sending incremental file list
hosts

sent 219 bytes  received 35 bytes  14.51 bytes/sec
total size is 332  speedup is 1.31

檢查:
[root@backup ~]# cd /opt/
[root@backup /opt]# ls
hosts


rsync -avz /etc/hosts root@172.16.1.41:/opt/
rsync -avz /etc/hosts -e "ssh -p 22" root@172.16.1.41:/opt/
上述命令是等價的剩愧。-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

push

rsync -avz root@172.16.1.41:/opt/hosts /opt
rsync -avz -e "ssh -p 22" root@172.16.1.41:/opt/hosts /opt

推拉:

a.參照物,執(zhí)行命令的機器
b.root@172.16.1.41 使用的用戶和主機仁卷,就用主機和用戶的密碼穴翩。
強調(diào)一個重點:適合rsync
null和null/ 區(qū)別,null是目錄和目錄下的內(nèi)容锦积,
null/只是目錄下的內(nèi)容芒帕,不含本身。

3)rsync守護進程模式

首先要搭建rsync服務(wù)器(要有守護進程)丰介,然后才能在客戶端實現(xiàn)推拉數(shù)據(jù)背蟆。
企業(yè)運維的重要模式鉴分,重點。
客戶端語法带膀,暫時不講志珍。
rsync服務(wù)模式:*****開啟后臺進程,接受別人訪問垛叨。

七伦糯、rsync命令參數(shù)。

rsync命令參數(shù):
-v --verboes 顯示輸出過程
-z --compress 壓縮
-a --archive 多參數(shù)集合(-rtopgD1)
-r --recursive 遞歸
-t --times 保持修改文件屬性
-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

八敛纲、rsync守護進程模式應(yīng)用實踐

(1)以下操作都是在backup服務(wù)器

1)安裝

[root@backup ~]# rsync --version
rsync  version 3.1.2  protocol version 31
[root@backup ~]# yum install rsync(不需要)

2)配置配置文件/etc/rsyncd.conf

1)備份

 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    #--------->安全功能,數(shù)據(jù)是否鎖定到備份目錄
fake super = yes
max connections = 200  #---------->并發(fā)連接剂癌,同時多少客戶端訪問
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   #---------->存放密碼的文件佩谷,格式:用戶名:密碼  權(quán)限  必須600
[backup]   #---------->[模塊名]遠程訪問使用模塊名訪問
comment = welcome to oldboyedu backup!   #---------->說明注釋
path = /backup/   #---------->服務(wù)端用戶備份的目錄旁壮,用戶和組,rsync.rsync
EOF

man rsync 查命令的參數(shù)
man rsyncd.conf 查配置參數(shù)
https://www.samba.org/ftp/rsync/rsync.html

2)創(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/

3)啟動和檢查

rsync --daemon(c6及以前)
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd

[root@backup ~]# ps -ef|grep sync|grep -v grep  #檢查進程
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 NAME
rsync   7521 root    3u  IPv4  41439      0t0  TCP *:rsync (LISTEN)
rsync   7521 root    5u  IPv6  41440      0t0  TCP *:rsync (LISTEN)

面試題:如何查看某端口對應(yīng)什么服務(wù)琳要?答案就是上面兩個寡具。

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ù)器

以下方法2選1
方法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 ~]# . /etc/bashrc 
[root@nfs01 ~]# echo $RSYNC_PASSWORD
oldboy

rsync客戶端nfs01配置完成

(3)守護進程模式稚补,客戶端rsync的命令語法:

配置服務(wù)器端守護進程,實現(xiàn)數(shù)據(jù)傳輸:
拉門框喳、推門 思考:

pull,拉:從遠端拉取到本地课幕。

語法1(常用):

rsync   [OPTION...]  [USER@]HOST::     SRC...       [DEST]
rsync命令 參數(shù)選項    [虛擬用戶]@[主機地址]::[模塊名]  本地路徑

語法2:

rsync   [OPTION...] rsync://[USER@]HOST::SRC...               [DEST]
rsync命令 參數(shù)選項 rsync://[虛擬用戶]@[主機地址]/[模塊名]     本地路徑

push,推:從本地推到遠端。

語法1(常用):

rsync    [OPTION...]    [DEST]        [USER@]HOST::    SRC...                    
rsync命令 參數(shù)選項      本地路徑   [虛擬用戶]@[主機地址]::[模塊名]        

語法2:

rsync    [OPTION...]       [DEST] rsync://[USER@]HOST::         SRC...               
rsync命令 參數(shù)選項         本地路徑 rsync://[虛擬用戶]@[主機地址]/[模塊名]    

(4)測試成果

錯誤1:

[root@nfs01 ~]# rsync -avz /etc/hosts 
rsync_backup@172.16.1.41::backup --password- 
file=/etc/rsync.password
@ERROR: invalid uid rsync
rsync error: error starting client-server protocol (code 5) at 
main.c(1648) [sender=3.1.2]

解答:

[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/

錯誤2:

[root@nfs01 ~]# rsync -avz /etc/hosts 
rsync_backup@172.16.1.41::backup --password- 
file=/etc/rsync.password
sending incremental file list
hosts
rsync: chgrp ".hosts.YDuTjO" (in backup) failed: Operation not permitted (1)

sent 223 bytes  received 124 bytes  694.00 bytes/sec
total size is 332  speedup is 0.96
rsync error: some files/attrs were not transferred (see previous 
errors) (code 23) at main.c(1178) [sender=3.1.2]

解答:增加如下參數(shù)到/etc/rsyncd.conf

fake  super  = yes #不用root用戶也可以存儲文件的完整屬性五垮。
This allows the full attributes of a file to  be  stored  without having to have the daemon actually running as root.
[root@backup ~]# grep fake /etc/rsyncd.conf
fake super = yes

改完配置乍惊,要重啟服務(wù):

[root@backup ~]# systemctl restart rsyncd

再次測試:成功

[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

如果客戶端按照環(huán)境變量的方式配置,則可以忽略--password-file=/etc/rsync.password參數(shù)放仗。

[root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup
sending incremental file list

sent 52,071 bytes  received 644 bytes  105,430.00 bytes/sec
total size is 31,244,350  speedup is 592.70

測試增量

[root@nfs01 ~]# touch /etc/oldboy.txt
[root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup
sending incremental file list
etc/oldboy.txt

sent 52,098 bytes  received 655 bytes  105,506.00 bytes/sec
total size is 31,244,350  speedup is 592.28
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末润绎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诞挨,更是在濱河造成了極大的恐慌莉撇,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惶傻,死亡現(xiàn)場離奇詭異棍郎,居然都是意外死亡,警方通過查閱死者的電腦和手機银室,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門涂佃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來励翼,“玉大人,你說我怎么就攤上這事辜荠∑В” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵伯病,是天一觀的道長殊橙。 經(jīng)常有香客問我,道長狱从,這世上最難降的妖魔是什么膨蛮? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮季研,結(jié)果婚禮上敞葛,老公的妹妹穿的比我還像新娘。我一直安慰自己与涡,他們只是感情好惹谐,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驼卖,像睡著了一般氨肌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酌畜,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天怎囚,我揣著相機與錄音,去河邊找鬼桥胞。 笑死恳守,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的贩虾。 我是一名探鬼主播催烘,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缎罢!你這毒婦竟也來了伊群?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤策精,失蹤者是張志新(化名)和其女友劉穎舰始,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛮寂,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蔽午,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酬蹋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片及老。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡抽莱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骄恶,到底是詐尸還是另有隱情食铐,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布僧鲁,位于F島的核電站虐呻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏寞秃。R本人自食惡果不足惜斟叼,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望春寿。 院中可真熱鬧朗涩,春花似錦、人聲如沸绑改。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厘线。三九已至识腿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間造壮,已是汗流浹背渡讼。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留费薄,地道東北人硝全。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓栖雾,卻偏偏與公主長得像楞抡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子析藕,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自駿馬金龍的博客 2.1 說在前面的話 rsync官方網(wǎng)站 rsync是可以實現(xiàn)增量備份的工具召廷。配合任務(wù)計劃,...
    whisshe閱讀 3,851評論 0 3
  • 一账胧、什么是rsync rsync是一款開源竞慢,快速,多功能的可實現(xiàn)增量的本地或遠程的數(shù)據(jù)鏡像同步備份的優(yōu)秀工具治泥。適用...
    逗比punk閱讀 2,406評論 0 1
  • rsync復制軟件應(yīng)用與實踐 1筹煮、什么是rsync? 全稱Remote synchr...
    故此曦閱讀 448評論 0 1
  • 4層負載均衡和7層負載均衡的區(qū)別居夹。A败潦、rsync的安裝本冲;軟件包安裝# yum install rsync 注...
    米開朗基樂閱讀 3,645評論 0 1
  • 有人說當今時代是一個娛樂化的時代,是一個拼顏值的時代劫扒。但是話說回來檬洞,愛美之心,人皆有之沟饥√碚“外貌協(xié)會”在中國古已有之...
    猴頭客閱讀 287評論 0 0