day32 Rsync服務(wù)及搭建備份服務(wù)器(cp)

rsync復(fù)制軟件應(yīng)用與實(shí)踐

[rrsync命令語法]https://download.samba.org/pub/rsync/rsync.html

1、什么是rsync?

rsync,Rsync英語全稱為Remote synchronization,是開源、高速的、可實(shí)現(xiàn)本地以及遠(yuǎn)程,全量以及增量的數(shù)據(jù)復(fù)制(拷貝)工具。

2、全量復(fù)制和增量復(fù)制的區(qū)別?

全量復(fù)制:
[root@nfs01 ~]# cp -a /etc/ /opt/
[root@nfs01 ~]# \cp -a /etc/ /opt
[root@nfs01 ~]# touch /etc/oldboy.txt
[root@nfs01 ~]# \cp -a /etc/ /opt/
增量復(fù)制:
只復(fù)制oldboy.txt(只復(fù)制另添加的文件)

3、rsync的作用?(適用于什么地方)

工作中需要定時(shí)/實(shí)時(shí)數(shù)據(jù)備份。本地不同的機(jī)器目錄、不同的機(jī)房之間的數(shù)據(jù)備份。這些都可以用rsync完成。

4、rsync的功能特性

增量復(fù)制的原理

使用quick check算法,只對(duì)增量的部分復(fù)制,根據(jù)大小屬性的變化進(jìn)行復(fù)制。
2.x比對(duì)差異后復(fù)制,3.x一邊比對(duì)一邊復(fù)制。

6、rsync三種工作模式介紹

①本地(local)

rsync就是一個(gè)命令
命令操作:
rsync命令
a.把數(shù)據(jù)從一個(gè)地方復(fù)制到另一個(gè)的的地方(僅在一臺(tái)機(jī)器增量),相當(dāng)于cp。
b.通過加參數(shù)實(shí)現(xiàn)刪除的功能,相當(dāng)于rm命令。
c.查看屬性信息功能,相當(dāng)于1s。

②遠(yuǎn)程Shell模式

借助類似ssh隧道傳輸數(shù)據(jù),適合不同機(jī)器之間的復(fù)制。
異地考本,相當(dāng)于srcp
拉門,推門
pull,拉:從遠(yuǎn)端拉取到本地。
rsync [OPTION ...] [USER @] HOST : SRC ... [DEST]

[root@nfs01 ~]# rsync -avz root@172.16.1.41:/root/1.txt /opt/
root@172.16.1.41's password: 
receiving incremental file list
1.txt

sent 43 bytes  received 106 bytes  33.11 bytes/sec
total size is 24  speedup is 0.16
[root@nfs01 ~]# cd /opt/
[root@nfs01 /opt]# ls
1.txt

rsync命令 參數(shù)選項(xiàng) [認(rèn)證用戶]@[主機(jī)地址]:[源地址]..[目的地址]
push,推:從本地推到遠(yuǎn)端。
rsync [OPTION ...] SRC ... [USER @] HOST : DEST

[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.
ECDSAkeyfingerprintisSHA256:pSmZZNpT7WLg8LxBk9gFez5RNq3gaxYgpo/Kd9sv1Do.ECDSAkeyfingerprintisMD5:ce:42:93:22:32:b3:9c:4a:71:81:b9:f6:50:e5:bb:6b.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 218 bytes  received 35 bytes  38.92 bytes/sec
total size is 332  speedup is 1.31

[root@backup /opt]# ls   <==檢查
hosts

推拉:
a.參照物,執(zhí)行命令的機(jī)器
b.root@172.16.1.41 使用的用戶和主機(jī),就用主機(jī)和用戶密碼。

重點(diǎn):適合rsync

null和null/區(qū)別,null是目錄和目錄下的內(nèi)容,null/只是目錄下的內(nèi)容,不含本身。

③rsync守護(hù)進(jìn)程模式

首先要搭建rsync服務(wù)器(要有守護(hù)進(jìn)程),然后才能在客戶端實(shí)現(xiàn)推拉數(shù)據(jù)

7、rsync命令的參數(shù)

image

--password-file=file 從flie中得到密碼。
企業(yè)常用參數(shù)組合:-avz或者-vzrtopg

8、rsync守護(hù)進(jìn)程模式部署

(1)注:以下操作均為backup機(jī)器

①查看rsync版本

[root@backup ~]# rsync --version <==查看rsync版本
rsync  version 3.1.2  protocol version 31
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, prealloc

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

②配置配置文件

[root@backup ~]# cp /etc/rsyncd.conf{,.ori} 
[root@backup ~]# > /etc/rsyncd.conf
[root@backup ~]# 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ù)是否鎖定到備份目錄
> max connections = 200            #--->并發(fā)連接,同時(shí)多少客戶端訪問
> timeout =600                     #--->超時(shí)時(shí)間。
> pid file = /var/run/rsyncd.pid   #--->進(jìn)程號(hào)所在文件 
> lock file = /var/run/rsync.lock  #--->鎖文件
> log file = /var/log/rsyncd.log   #--->日志文件,查看報(bào)錯(cuò)等
> ignore errors                    #--->忽略錯(cuò)誤
> read only = false                #--->可寫
> list = false                     #--->不允許列表
> hosts allow = 172.16.1.0/24      #--->哪些主機(jī)可以訪問。
> hosts deny = 0.0.0.0/32          #--->哪些主機(jī)不允許訪問。
> auth users = rsync_backup        #--->遠(yuǎn)程虛擬連接用戶
> secrets file = /etc/rsync.password     #--->存放密碼的文件:格式:用戶名:密碼權(quán)限必須600
> [backup]                               #--->[模塊名]遠(yuǎn)程訪問使用模塊名訪問
> comment = welcome to oldboyedu backup! #--->說明注釋
> path = /backup/                        #--->服務(wù)端用戶備份的目錄,用戶和組,rsync.rsync
> EOF

[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1004(rsync) gid=1004(rsync) 組=1004(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown rsync.rsync /backup/

man rsync 查命令的參數(shù)
man rsyncd.conf 查配置參數(shù)
[rrsync命令語法]https://download.samba.org/pub/rsync/rsync.html
③啟動(dòng)和檢查

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

④配置密碼文件

[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ù)端配置完成

(2)注:以下操作都是在客戶端服務(wù)器

兩個(gè)方法二選一
方法1:認(rèn)證密碼文件

[root@nfs01 ~]# echo "oldboy" > /etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password 
[root@nfs01 ~]# ll /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)守護(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ī)路徑] [虛擬用戶]@[主機(jī)地址]::[模塊名]...
語法2:
rsync [OPTION ...] [DEST] rsync:// [USER @] HOST :: SRC ...
rsync命令 參數(shù)選項(xiàng) [本地路徑] rsync:// [虛擬用戶]@[主機(jī)地址]/[模塊名]..

(4)測(cè)試結(jié)果

錯(cuò)誤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/

錯(cuò)誤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用戶也可以存儲(chǔ)文件的完整屬性。
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

在測(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

如果客戶端按照環(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

測(cè)試增量

[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)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容