day32

第1章 rsync服務(wù)及搭建備份服務(wù)器
1.1 什么是Rsync
??Rsync是一款開源的匆赃、快速的球散、多功能的、可實(shí)現(xiàn)全量及增量的本地或遠(yuǎn)程數(shù)據(jù)復(fù)制(拷貝)的優(yōu)秀工具督惰。
1.2 全量和增量

全量
全部備份

增量
差異化備份,對更新的那一部分進(jìn)行備份

1.3 Rsync的作用
??工作中的定時/實(shí)時數(shù)據(jù)備份旅掂、本地服務(wù)器目錄赏胚、不同機(jī)器、不同機(jī)房之間的數(shù)據(jù)備份都可以使用Rsync完成商虐。
1.4 Rsync的功能特性

支持拷貝普通文件與特殊文件觉阅,如鏈接文件,設(shè)備文件等秘车。
支持排除指定文件或目錄同步的功能典勇,相當(dāng)于打包命令tar的排除功能。
可以做到保持原文件或目錄的權(quán)限鲫尊、時間痴柔、軟硬鏈接、屬主疫向、組等所有屬性均不改變咳蔚。
可實(shí)現(xiàn)增量復(fù)制,既只復(fù)制發(fā)生變化的數(shù)據(jù)搔驼,因此數(shù)據(jù)傳輸效率很高谈火。
可以使用rcp,rsh,ssh等方式來配合進(jìn)行隧道加密傳輸文件(rsync本身不對數(shù)據(jù)加密)。
可以通過socket(進(jìn)程方式)傳輸文件和數(shù)據(jù)(服務(wù)端和客戶端)舌涨。
支持匿名或認(rèn)證(無需系統(tǒng)用戶)進(jìn)程模式傳輸糯耍,安全的進(jìn)行數(shù)據(jù)備份及鏡像

1.5 增量復(fù)制原理
使用quick check算法,只對增量的部分復(fù)制囊嘉,根據(jù)大小屬性的變化進(jìn)行復(fù)制温技。

版本
復(fù)制原理

Rsync 2.x
比對完所有內(nèi)容后,對差異的內(nèi)容進(jìn)行復(fù)制

Rsync 3.x
一邊比對文本內(nèi)容扭粱,一邊對差異進(jìn)行復(fù)制舵鳞。

1.6 Rsync三種工作模式介紹
1.6.1 本地(local)
在本地使用,rsync就是一個命令琢蛤。
語法格式:

rsync
[OPTION...]
SRC...
[DEST]

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

命令作用:

把數(shù)據(jù)從一個地方復(fù)制到另一個地方(僅在一臺機(jī)器增量)蜓堕,相當(dāng)于cp命令抛虏。
通過加參數(shù)實(shí)現(xiàn)刪除功能,相當(dāng)于rm命令套才。
查看屬性信息功能迂猴,相當(dāng)于ls命令。

拷貝實(shí)踐:
1.一般復(fù)制:
[root@backup ~]ls /opt <===查看目錄為空目錄 [root@backup ~] rsync /etc/hosts /opt <===拷貝文件hosts
[root@backup ~]$ ls /opt <===查看結(jié)果
hosts

2.保持屬性復(fù)制:
[root@backup ~]rsync -zrtopg /etc/hosts /opt/ <===復(fù)制文件 [root@backup ~] ls -l /opt/hosts /etc/hosts <===查看屬性
-rw-r--r-- 1 root root 332 4月 12 11:25 /etc/hosts
-rw-r--r-- 1 root root 332 4月 12 11:25 /opt/hosts

刪除實(shí)踐:
1.刪除文件內(nèi)容:
[root@backup ~]touch /null.txt <===創(chuàng)建空文件 [root@backup ~] cat /opt/hosts <===查看原文件內(nèi)容
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 <===讓后面的hosts和前面的null.txt一樣 [root@backup ~] cat /opt/hosts <===查看是否清空

2.刪除目錄下所有內(nèi)容:
[root@backup ~]mkdir /null <===創(chuàng)建空目錄 [root@backup ~] rsync -r --delete /null/ /opt/ <===讓后面opt和前面null目錄內(nèi)容保持一致
[root@backup ~]$ ls /opt/

查看屬性:
[root@backup ~]$ rsync /etc/hosts
-rw-r--r-- 332 2019/04/12 11:25:32 hosts

重點(diǎn):只適合rsync

目錄
區(qū)別

null
目錄和目錄下的內(nèi)容

null/
只是目錄下的內(nèi)容背伴,不含本身

1.6.2 遠(yuǎn)程shell模式
??借助類似ssh隧道傳輸數(shù)據(jù)沸毁,適合不同的機(jī)器之間的異地拷貝,相當(dāng)于scp挂据,但是scp是遠(yuǎn)程全量拷貝以清。
遠(yuǎn)程拷貝的兩種模式:
1、pull(拉):從遠(yuǎn)端拉取到本地
語法格式:

rsync
[OPTION...]
[USER@]HOST:SRC...
[DEST]

rsync命令
參數(shù)選項
[認(rèn)證用戶]@[主機(jī)地址]:[源路徑]
本地路徑

2崎逃、push(推):從本地推到遠(yuǎn)端
語法格式:

rsync
[OPTION...]
SRC...
[USER@]HOST:[DEST]

rsync命令
參數(shù)選項
本地路徑
[認(rèn)證用戶]@[主機(jī)地址]:[目標(biāo)路徑]

示例:
[root@nfs01 ~]$ rsync -avz /etc/hosts root@172.16.1.41:/opt/ <===加密傳輸掷倔。
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

以下兩條命令是等價的。其中:

參數(shù)
含義

-e ssh
指定使用ssh通道

-p 22
指定使用22端口

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

示例:
[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

pull(拉)的命令:
rsync -avz root@172.16.1.41:/opt/hosts /opt
rsync -avz -e "ssh -p 22" root@172.16.1.41:/opt/hosts /opt

1.6.3 rsync守護(hù)進(jìn)程模式
??rsync服務(wù)模式:開啟后臺進(jìn)程个绍,接受別人訪問勒葱。
??守護(hù)進(jìn)程模式首先要搭建rsync服務(wù)端(即守護(hù)進(jìn)程),然后才能在客戶端實(shí)現(xiàn)推拉數(shù)據(jù)巴柿。守護(hù)進(jìn)程模式是企業(yè)運(yùn)維的一個重要的模式凛虽。
1.7 rsync命令參數(shù)

參數(shù)
說明

-v
--verbose 顯示輸出過程

-z
--compress 壓縮

-a
--archive 多參數(shù)集合(-rtopgDl)

-r
--recursive 遞歸

-t
--times 保持修改時間屬性

-o
--owner 保持屬主不變

-p
--perms 保持權(quán)限不變

-g
--group 保持用戶組不變

-l
--links 保持拷貝軟連接

-q
--quiet 安靜的拷貝

-e
指定傳輸通道

--bwlimit=KBPS
限制I/O帶寬,KBytes per second广恢。

--delete
刪除

--exclude
排除

--exclude-from
從文件中排除

企業(yè)常用參數(shù)組合: -avz或者-vzrtopg
1.8 rsync守護(hù)進(jìn)程模式應(yīng)用實(shí)踐
1.8.1 以下操作都是在backup服務(wù)器
1.8.1.1 安裝rsync命令凯旋,若已安裝,可以忽略
[root@backup ~]rsync --version <===查看rsync版本 rsync version 3.1.2 protocol version 31 [root@backup ~] yum install rsync <===安裝rsync

1.8.1.2 配置配置文件
備份:
cp /etc/rsyncd.conf{,.ori}

修改文件信息:
cat -n /etc/rsyncd.conf
1 #rsync_config_______________start
2 #created by oldboy
3 #site: http://www.oldboyedu.com
4 uid = rsync --->管理備份目錄的用戶
5 gid = rsync --->管理備份目錄的用戶組
6 use chroot = no --->安全功能钉迷,數(shù)據(jù)是否鎖定到備份目錄
7 fake super = yes --->不用root用戶也可以存儲文件的完整屬性
8 max connections = 200 --->最大并發(fā)連接數(shù)(同時多少客戶端訪問)
9 timeout = 600 --->超時時間
10 pid file = /var/run/rsyncd.pid --->進(jìn)程號所在文件
11 lock file = /var/run/rsync.lock --->鎖文件
12 log file = /var/log/rsyncd.log --->日志文件至非,查看報錯等信息*****
13 ignore errors --->忽略錯誤
14 read only = false --->可寫
15 list = false --->不允許列表
16 hosts allow = 172.16.1.0/24 --->授權(quán)哪些主機(jī)可以訪問
17 hosts deny = 0.0.0.0/32 --->哪些主機(jī)不允許訪問
18 auth users = rsync_backup --->遠(yuǎn)程虛擬連接用戶
19 secrets file = /etc/rsync.password --->存放密碼的文件(格式為(用戶名:密碼) 權(quán)限:必須為600)
20 [backup] --->[模塊名]遠(yuǎn)程訪問一般使用模塊名訪問
21 comment = welcome to oldboyedu backup! --->說明,注釋
22 path = /backup/ --->服務(wù)端用戶備份的目錄(用戶和組糠聪,rsync.rsync)

創(chuàng)建用戶和備份目錄:
[root@backup ~]useradd rsync <===創(chuàng)建用戶 [root@backup ~] id rsync
uid=1001(rsync) gid=1001(rsync) 組=1001(rsync)
[root@backup ~]mkdir -p /backup <===創(chuàng)建目錄 [root@backup ~] chown -R rsync.rsync /backup/ <===修改用戶和用戶組
[root@backup ~]$ ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4月 15 12:12 /backup/

1.8.1.3 啟動和檢查rsyncd服務(wù)
啟動:
c6及以前:
rsync --daemon
c7:
systemctl start rsyncd <===開啟服務(wù)
systemctl enable rsyncd <===開啟開機(jī)自啟動
systemctl status rsyncd <===檢查服務(wù)狀態(tài)

檢查進(jìn)程和端口:
[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 NAME
rsync 7521 root 3u IPv4 41439 0t0 TCP *:rsync (LISTEN)
rsync 7521 root 5u IPv6 41440 0t0 TCP *:rsync (LISTEN)

1.8.1.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 ~] ll /etc/rsync.password
-rw------- 1 root root 20 4月 15 11:52 /etc/rsync.password

到這里rsync服務(wù)端已配置完成
1.8.2 以下操作在客戶端服務(wù)器
在客戶端認(rèn)證密碼荒椭,有兩種方法:(可以二選一)
方法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 ~] ll /etc/rsync.password
-rw------- 1 root root 7 4月 15 11:55 /etc/rsync.password

方法2:配置特殊變量RSYNC_PASSWORD [root@nfs01 ~] echo ' export RSYNC_PASSWORD=oldboy' >>/etc/bashrc
[root@nfs01 ~]tail -1 /etc/bashrc export RSYNC_PASSWORD=oldboy [root@nfs01 ~]4 . /etc/bashrc [root@nfs01 ~] echo $RSYNC_PASSWORD
oldboy

到這里rsync客戶端 nfs01 配置完成
1.8.3 守護(hù)進(jìn)程模式,客戶端rsync的命令語法
配置服務(wù)器端守護(hù)進(jìn)程舰蟆,實(shí)現(xiàn)數(shù)據(jù)傳輸:

服務(wù)器端守護(hù)進(jìn)程趣惠。
客戶端執(zhí)行命令。

1.8.3.1 Pull(拉):從遠(yuǎn)端拉取到本地身害。
語法1(常用):

rsync
[OPTION...]
[USER@]HOST::SRC...
[DEST]

rsync命令
參數(shù)選項
[虛擬用戶]@[主機(jī)地址]::[模塊名]
本地路徑

語法2:

rsync
[OPTION...]
rsync://[USER@]HOST::SRC...
[DEST]

rsync命令
參數(shù)選項
rsync://[虛擬用戶]@[主機(jī)地址]/[模塊名]
本地路徑

1.8.3.2 Push(推):從本地推到遠(yuǎn)端味悄。
語法1(常用):

rsync
[OPTION...]
[DEST]
[USER@]HOST::SRC...

rsync命令
參數(shù)選項
本地路徑
[虛擬用戶]@[主機(jī)地址]::[模塊名]

語法2:

rsync
[OPTION...]
[DEST]
rsync://[USER@]HOST::SRC...

rsync命令
參數(shù)選項
本地路徑
rsync://[虛擬用戶]@[主機(jī)地址]/[模塊名]

1.8.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]

原因分析:無效的UID:rsync,需要添加用戶rsync塌鸯,并且發(fā)現(xiàn)沒有/backup目錄傍菇,需要創(chuàng)建目錄,并將用戶和用戶組都改為rsync界赔。
解答:
[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]

原因分析:/etc/rsyncd.conf文件內(nèi)缺少參數(shù)丢习,導(dǎo)致文件的存儲屬性不完整。
解答:增加如下參數(shù)到/etc/rsyncd.conf
fake super = yes <===增加的參數(shù):不用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

參數(shù)添加完后再測試:結(jié)果成功,沒有報錯
[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
服務(wù)端檢查結(jié)果:
[root@backup ~]$ ls /backup/
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
第二種語法:
[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
。羹令。鲤屡。。福侈。酒来。。肪凛。堰汉。。伟墙。翘鸭。。戳葵。就乓。。拱烁。生蚁。。邻梆。守伸。。浦妄。尼摹。。剂娄。蠢涝。。阅懦。和二。。耳胎。惯吕。
惕它。。废登。淹魄。。堡距。甲锡。。羽戒。缤沦。。易稠。缸废。。缩多。呆奕。。衬吆。梁钾。。逊抡。copy的姆泻。。冒嫡。拇勃。。孝凌。方咆。。蟀架。
瓣赂。。片拍。煌集。。捌省。苫纤。。。卷拘。喊废。。恭金。操禀。。横腿。。斤寂。耿焊。。遍搞。罗侯。。溪猿。钩杰。。诊县。讲弄。。依痊。避除。。胸嘁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓶摆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子性宏,更是在濱河造成了極大的恐慌群井,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毫胜,死亡現(xiàn)場離奇詭異书斜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)指蚁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門菩佑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凝化,你說我怎么就攤上這事稍坯。” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵瞧哟,是天一觀的道長混巧。 經(jīng)常有香客問我,道長勤揩,這世上最難降的妖魔是什么咧党? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮陨亡,結(jié)果婚禮上傍衡,老公的妹妹穿的比我還像新娘。我一直安慰自己负蠕,他們只是感情好蛙埂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著遮糖,像睡著了一般绣的。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欲账,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天屡江,我揣著相機(jī)與錄音,去河邊找鬼赛不。 笑死惩嘉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俄删。 我是一名探鬼主播宏怔,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畴椰!你這毒婦竟也來了臊诊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤斜脂,失蹤者是張志新(化名)和其女友劉穎抓艳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帚戳,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玷或,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了片任。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偏友。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖对供,靈堂內(nèi)的尸體忽然破棺而出位他,到底是詐尸還是另有隱情氛濒,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布鹅髓,位于F島的核電站舞竿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏窿冯。R本人自食惡果不足惜骗奖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望醒串。 院中可真熱鬧执桌,春花似錦、人聲如沸厦凤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽较鼓。三九已至,卻和暖如春违柏,著一層夾襖步出監(jiān)牢的瞬間博烂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工漱竖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留禽篱,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓馍惹,卻偏偏與公主長得像躺率,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子万矾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

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