Linux搭建rsync服務

1、Rsync的簡單介紹

Rsync是一款開源的、快速的、多功能的、可實現全量及增量(全量備份是指所有備份,增量備份是在上一次備份的基礎上只備份更新的內容)的本地貨遠程數據同步備份的優秀工具。Rsync軟件適用於unix/linux/windows等多種操做系統平臺。linux

2、Rsync的三種工做模式

#rsync 本地模式

Local:  rsync [OPTION...] SRC... [DEST]

#rsync shell模式

Access via remote shell:

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

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

#rsync daemon模式

Access via rsync daemon:

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

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

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

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

3、Rsync經常使用參數

-vshell

詳細模式輸出,傳輸時的進度等信息vim

-zwindows

傳輸時進行壓縮以提升傳輸效率,--compress-level=NUM可按級別壓縮服務器

-aide

以遞歸方式傳輸文件,並保持全部文件的屬性工具

-r測試

對子目錄以遞歸模式,即目錄下的全部目錄都以一樣的模式傳輸ui

-tspa

保持文件的時間信息

-o

保持文件的屬主信息

-p

保持文件的權限

-g

保持文件的屬組信息

-P(大寫)

顯示同步的過程及傳輸時的進度等信息

-D

保持設備文件信息

-I

保留軟連接

-e,--rsh=COMMAND

使用的信道協議,指定替代rsh的shell程序

-n

測試選項,模擬執行

--exclude=PATTERN

指定排除不須要傳輸的文件模式

--exclide-from=FILE

從文本文件讀取須要排除的文件列表

--bwlimit=KBPS

限制傳輸速度

--partial

斷點續傳

--delete

使目標目錄內容和源保持目錄一致,刪除不一樣的文件

4、搭建Rsync服務

實驗環境:

<1>系統環境:

•CentOS7.5

<2>主機環境:

•backup01  IP地址:10.0.0.41  rsync服務端(備份服務端)

•nfs01    IP地址:10.0.0.31  rsync客戶端(用戶數據)

一、服務端(遠程備份服務器)

第一步:查看rsync安裝包
rpm -qa rsync

第二步:添加rsync服務的用戶,管理本地目錄
useradd -s /sbin/nologin -M rsync
id rsync

第三步:配置rsync的進程模式(vim /etc/rsyncd.conf)
uid = rsync                                  
gid = rsync                          
use chroot = no                      
max connections = 200                
timeout = 300                        
pid file = /var/run/rsyncd.pid       
lock file = /var/run/rsync.lock      
log file = /var/log/rsyncd.log       
[backup]                             
path = /backup                       
ignore errors                        
read only = false                    
list = false 
fake super = yes                        
hosts allow = 172.16.2.0/24          
hosts deny = 0.0.0.0/32              
auth users = rsync_backup            
secrets file = /etc/rsync.password

第四步:根據rsync.conf的auth_users配置賬戶,遠程鏈接的,並根據secreets file參數生成密碼文件
echo "rsync_backup:wt">>/etc/rsync.password
cat /etc/rsync.password

第五步:更改密碼配置文件的權限
chmod 600 /etc/rsync.password
ls -l /etc/rsync.password

第六步:建立共享的目錄受權rsync服務管理
mkdir -p /backup
chown -R rsync.rsync /backup

#提示:若是沒有/backup目錄,就會chdir failed

第七步:啓動rsync服務並檢查
rsync --daemon
ps -ef|grep rsync|grep -v grep
lsof -i :873

第八步:開機自啓動
echo "/usr/bin/rsync --daemon">>/etc/rc.local
tail -1 /etc/rc.local

二、客戶端

第一步:生成鏈接服務器須要的密碼文件
echo "wt">>/etc/rsync.password
cat /etc/rsync.password

第二步:爲密碼文件配置權限
chmod 600 /etc/rsync.password
ls -l /etc/rsync.password

三、客戶端推送數據到服務端

提示:rsync: chgrp "data" (in backup) failed: Operation not permitted (1),出現這個語句是由於rsyncd.conf沒有配置fake super = yes

[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# cd /data/
[root@nfs01 data]# touch aaa
[root@nfs01 data]# rsync -avz /data rsync_backup@172.16.2.41::backup/
Password: 
sending incremental file list
rsync: chgrp "data" (in backup) failed: Operation not permitted (1)
data/
data/aaa
rsync: chgrp "data/.aaa.3HdDEQ" (in backup) failed: Operation not permitted (1)

sent 118 bytes  received 203 bytes  37.76 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

四、服務端查看數據是否推送成功

[root@backup01 ~]# cd /backup/
[root@backup01 backup]# ls
data
[root@backup01 backup]# cd
[root@backup01 ~]# cd /backup
[root@backup01 backup]# ls
data
[root@backup01 backup]# ls data/
aaa

5、Rsync多模塊配置

uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup
ignore errors
read only = false
list = false
fake super = yes
hosts allow = 172.16.2.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[wtt]
path = /wtt
ignore errors
read only = false
list = false
fake super = yes
hosts allow = 172.16.2.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_wtt
secrets file = /etc/rsync.password.wtt

6、深刻使用Rsync

一、從遠程存儲節點拉取數據到本地

[root@nfs01 ~]# cd /data/
[root@nfs01 data]# ls
aaa  ssss
[root@nfs01 data]# rm -f *
[root@nfs01 data]# rsync -avz  rsync_backup@172.16.2.41::backup/ /data/ --password-file=/etc/rsync.password
receiving incremental file list
./
aaa
ssss

sent 69 bytes  received 181 bytes  500.00 bytes/sec
total size is 0  speedup is 0.00

二、排除某些文件推送數據

#同步除名爲eee文件以外的文件

[root@nfs01 data]# ls

aaa  bbb  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude=eee /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ccc

data/ddd

data/ssss

 

sent 338 bytes  received 123 bytes  922.00 bytes/sec

total size is 0  speedup is 0.00

 

#查看遠程存儲節點的數據內容

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

aaa  bbb  ccc  ddd  ssss

三、排除多個文件推送數據

#同步除名爲ccc和eee文件以外的文件

[root@nfs01 data]# ls

aaa  bbb  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude={ccc,eee} /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ddd

data/ssss

 

sent 288 bytes  received 104 bytes  784.00 bytes/sec

total size is 0  speedup is 0.00

 

#查看遠程存儲節點的數據內容

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

aaa  bbb  ddd  ssss

8.四、排除連續文件推送數據

[root@nfs01 data]# ls

a  aaa  b  bbb  c  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude={a..c} /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/aaa

data/bbb

data/ccc

data/ddd

data/eee

data/ssss

 

sent 393 bytes  received 142 bytes  356.67 bytes/sec

total size is 0  speedup is 0.00

五、經過排除文件推送數據

[root@nfs01 data]# cat /tmp/file.txt

ssss

eee

g

[root@nfs01 data]# ls

a  aaa  b  bbb  c  ccc  ddd  eee  ssss

[root@nfs01 data]# rsync -avz --exclude-from=/tmp/file.txt /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/a

data/aaa

data/b

data/bbb

data/c

data/ccc

data/ddd

 

sent 443 bytes  received 161 bytes  402.67 bytes/sec

total size is 0  speedup is 0.00

六、無差別同步(--delete)

注意:使用—delete選項,即本地有啥,遠程存儲節點就業啥,若是遠程存儲節點有別的數據。那麼這些「別的數據」將所有被刪除掉,全部慎用這個--delete選項。

#遠端存儲節點的數據以下

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

a  aaa  b  bbb  c  ccc  ddd

 

#本地數據以下

[root@nfs01 data]# ls

a  b  c  d  e  f  g

 

#本地數據推送到遠程存儲服務器

[root@nfs01 data]# rsync -avz --delete  /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

deleting data/ddd deleting data/ccc deleting data/bbb deleting data/aaa

data/

data/a

data/b

data/c

data/d

data/e

data/f

data/g

 

sent 418 bytes  received 209 bytes  1,254.00 bytes/sec

total size is 0  speedup is 0.00

#再次查看遠程存儲服務器的備份數據內容發現 {aaa bbb ccc}這三個文件被刪除了

[root@backup01 backup]# ls

data

[root@backup01 backup]# ls data/

a  b  c  d  e  f  g

8.7  限制速度推送數據(--bwlimit=KBPS)

#未限速

[root@nfs01 data]# dd if=/dev/zero of=test1 bs=1M count=128

[root@nfs01 data]# rsync -avz   /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/test1

 

sent 130,760 bytes  received 47 bytes  23,783.09 bytes/sec

total size is 134,217,728  speedup is 1,026.07

 

#限速

[root@nfs01 data]# rsync -avz --bwlimit=10k  /data rsync_backup@172.16.2.41::backup/ --password-file=/etc/rsync.password

sending incremental file list

data/

data/test1

 

sent 130,760 bytes  received 47 bytes  9,689.41 bytes/sec

total size is 134,217,728  speedup is 1,026.07
相關文章
相關標籤/搜索