rsync介紹linux
Rsync 是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具,而且能夠不進行改變原有數據的屬性信息,實現數據的備份遷移特性。Rsync軟件適用於unix/linux/windows等多種操做系統平臺shell
rsync命令做用
windows
rsync中有/和沒有/的目錄,是不同的概念:服務器
例:rsync /data表示查看這個目錄ssh
rsync /data/ 表示查看這個目錄下的東西ide
rsync==cp 、 scp、 rm、 ls工具
cp命令
spa
[root@backup ~]# cp -rp /etc/hosts /tmp/
操作系統rsync 複製目錄的時候,好比複製的是data目錄unix
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
root@10.0.0.31'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 ###查看遠程主機上的目錄屬性信息
root@10.0.0.31's password:
drwxrwxrwt4096 2017/05/04 09:17:06 tmp
[root@backup ~]# rsync 10.0.0.31:/tmp/ ###查看遠程主機上的目錄中文件的屬性信息
root@10.0.0.31'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 data
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 root@10.0.0.31:/tmp
root@10.0.0.31's password:
[root@backup ~]# rsync -rp -e "ssh -p 22" /etc/hosts root@10.0.0.31:/tmp ##-e指定協議及端口
root@10.0.0.31's password:
---------------------------------------------------------+
# rsync -avzP-e 'ssh -p 22' /etc/hostsroot@172.16.1.31:/opt
root@172.16.1.31'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 root@172.16.1.31:/opt
ot@172.16.1.31'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 root@172.16.1.31:/opt
root@172.16.1.31'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 rsync_backup@172.16.1.41::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
後續內容,下章見分曉