數據同步--rsync

rsync介紹

Rsync 是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具,並且可以不進行改變原有數據的屬性信息,實現數據的備份遷移特性。Rsync軟件適用於unix/linux/windows等多種操作系統平臺

rsync命令作用

rsync中有/和沒有/的目錄,是不一樣的概念:

         例:rsync /data表示查看這個目錄

                rsync /data/ 表示查看這個目錄下的東西

rsync==cp 、 scp、 rm、 ls

cp命令

[root@backup ~]# cp -rp /etc/hosts /tmp/

rsync 複製目錄的時候,比如複製的是oldboy目錄

rsync -r data /tmp :data目錄後面沒有/,表示目錄本身及目錄下內容進行復制到/tmp目錄下

rsync -r data/ /tmp :data目錄後面有/ 表示只複製目錄下的內容到/tmp目錄下

scp命令

[root@backup ~]# scp -rp data10.0.0.31:/tmp/

----------------------------------------------------------

[root@backup ~]# rsync -rp data10.0.0.31:/tmp

[email protected]'s password:

rm刪除命令

[root@backup ~]# rm -f data/*

[root@backup ~]# ll data

total 0

-----------------------------------

[root@backup ~]# rsync -r --delete data/ /tmp/

[root@backup ~]# ll /tmp/

total 0

ls命令

[root@backup ~]# # 查看文件信息命令ls

[root@backup ~]# rsync /tmp/

drwxrwxrwt4096 2017/05/04 09:21:42 .

[root@backup ~]# rsync /etc/

drwxr-xr-x4096 2017/05/04 09:07:46 .

-rw-------           0 2017/03/08 12:03:35 .pwd.lock

-rw-r--r--4439 2016/04/12 15:56:23 DIR_COLORS

-rw-r--r--5139 2016/04/12 15:56:23 DIR_COLORS.256color

-rw-r--r--4113 2016/04/12 15:56:23 DIR_COLORS.lightbgcolor

----------------------------------------------------------------------------

[root@backup ~]# rsync 10.0.0.31:/tmp     ###查看遠程主機上的目錄屬性信息

[email protected]'s password:

drwxrwxrwt4096 2017/05/04 09:17:06 tmp

[root@backup ~]# rsync 10.0.0.31:/tmp/    ###查看遠程主機上的目錄中文件的屬性信息

 

[email protected]'s password:

drwxrwxrwt4096 2017/05/04 09:17:06 .

-rw-------           0 2017/05/02 11:29:38 yum.log

drwxrwxrwt4096 2017/05/03 21:06:50 .ICE-unix

drwxr-xr-x4096 2017/05/04 09:17:06 oldboy


rsync增量複製和全量複製特性說明

全量:所有數據,不管是否已經存在,都重新複製一遍

增量:所有數據,只複製進行變化的數據,已經存在未發生變化的數據不進行復制

rsync軟件特點


tar zcvf backup_1.tar.gz  /opt/data  -exclude=data

#說明:在打包/opt/data時就排除了data命名的目錄和文件。

rsync工作應用場景

定時任務+rsync方式

全網數據備份方案(備份、驗證、通知)

備份服務器單點服務器單點問題(多個備份服務器、同城災備、異地災備)

實時同步+rsync方式

用戶上傳的數據信息,進行實時的備份

rsync軟件參數

 --delete            實現無差異數據同步

 --bwlimit=RATE    實現數據傳輸過程中的限速默認單位KB

命令參數

參數說明

-v, --verbose

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

-z, --compress

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

-a, --archive(重要)

歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rtopgDl

-r, --recursive 歸類-a參數

對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸。

-t, --times     歸類-a參數

保持文件時間信息

-o, --owner     歸類-a參數

保持文件屬主信息

-p, --perms     歸類-a參數

保持文件權限

-g,--group     歸類-a參數

保持文件屬組信息

-P,--progress

顯示同步的過程及傳輸時的進度等信息(大寫P)

-D,--devices   歸類-a參數

保持設備文件信息

-l,--links     歸類-a參數

保留軟鏈接(小寫字母L)

-e,--rsh=COMMAND

使用的通信協議(remote shell),指定替代rsh的shell程序。例如:ssh

--exclude=PATTERN

指定排除不需要傳輸的文件信息(和tar參數一樣)

--exclude-from=file

文件名所在的目錄文件,既可以實現排除多個文件(和rar參數一樣)

--bwlimit=PATE

可以實現限速功能。單位KB

--delete

讓目標目錄SRC和源目錄數據DST一致,即無差異同步數據

保存同步目錄及文件屬性:


這裏的-avzP相當於-vzrtopgDlP(還多了Dl功能),生產環境常用的參數選項爲-avzP或-vzrtopgP.如果是放入腳本中,也可以吧-v和-P去掉。這裏的--progress可以用-P代替


 rsync軟件工作方式

本地複製方式

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

---------------------------------------+

[root@backup backup]# rsync /etc/hosts /tmp   ###使用方法和cp一樣

[root@backup backup]# ll /tmp

total 12

-rw-r--r--1 root root  331 May  6 19:23 hosts


隧道傳輸方式

判斷文件沒有變化,根據增量同步原理,不進行數據傳送

Access via remote shell:

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

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

--------------------------------------------+

[root@backup ~]# rsync -rp /etc/hosts  [email protected]:/tmp

[email protected]'s password:

[root@backup ~]# rsync -rp -e "ssh -p 22" /etc/hosts  [email protected]:/tmp   ##-e指定協議及端口

[email protected]'s password:

---------------------------------------------------------+

# rsync -avzP-e 'ssh -p 22' /etc/[email protected]:/opt

[email protected]'s password:

sending incremental file list

 

sent 30 bytesreceived 12 bytes  12.00 bytes/sec

total size is 324speedup is 7.71

判斷文件發生變化,根據增量同步原理,進行數據傳送

 

[root@backup ~]# rsync -avzP  -e 'ssh -p 22' /etc/hosts   [email protected]:/opt

[email protected]'s password:

sending incremental file list

hosts

         326 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

 

sent 202 bytesreceived 37 bytes  68.29 bytes/sec

total size is 326speedup is 1.36

 

[root@backup ~]# rsync -avz  -e 'ssh -p 22' /etc/hosts   [email protected]:/opt

[email protected]'s password:

sending incremental file list

hosts

 

sent 202 bytesreceived 37 bytes  20.78 bytes/sec

total size is 325speedup is 1.36


守護進程方式

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

--------------------------------------------------------------+

###需要進行配置纔可以使用守護進程的方式配置方法在下面

[root@nfs01 ~]# rsync -avzP /etc/hosts [email protected]::backup

Password:

sending incremental file list

hosts

         323 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

 

sent 199 bytesreceived 27 bytes  41.09 bytes/sec

total size is 323speedup is 1.43

後續內容,下章見分曉



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章