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算法揖曾,只對增量的部分復(fù)制落萎,根據(jù)大小屬性的變化進(jìn)行復(fù)制亥啦。
2.x比對差異后復(fù)制,3.x一邊比對一邊復(fù)制模暗。
6禁悠、rsync三種工作模式介紹
①本地(local)
rsync就是一個(gè)命令
命令操作:
rsync命令
a.把數(shù)據(jù)從一個(gè)地方復(fù)制到另一個(gè)的的地方(僅在一臺機(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.png
--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ù)是否鎖定到備份目錄
>fake super = yes
> max connections = 200 #--->并發(fā)連接唯笙,同時(shí)多少客戶端訪問
> timeout =600 #--->超時(shí)時(shí)間。
> pid file = /var/run/rsyncd.pid #--->進(jìn)程號所在文件
> 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)測試結(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用戶也可以存儲文件的完整屬性蚯妇。
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