linux rsync配置及用法

rsync介紹

 




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

rsync包含的功能




1、rsync包含cp功能

命令 參數 源文件 目標文件

[root@backup caojiaoyue]# ls /tmp/
[root@backup caojiaoyue]# rsync -r /caojiaoyue/ /tmp/
[root@backup caojiaoyue]# ls /tmp/
cao  jiao  yue
[root@backup caojiaoyue]# ls
cao  jiao  yue
[root@backup caojiaoyue]#

2、rsync包含rm功能

要實現rm功能其實涉及到一個無差異同步。其原理是創建一個空目錄。然後把這個空目錄去同步要刪除的目錄。注意如果刪除但個文件就實現不了。只能刪除單個文件的內容

[root@backup /]# ls /caojiaoyue/
1  2  3
[root@backup /]# ls kowenj
[root@backup /]# rsync -r --delete kowenj/ /caojiaoyue
[root@backup /]# ls /caojiaoyue/
[root@backup /]#

注意源必須要是空目錄必須加上/

錯誤寫法rsync -r --delete 源目錄 目標目錄 這樣是會把源目錄複製到目標目錄的

正確寫法rsync -r --delete 源目錄/ 目標目錄

一般情況還是用rm吧

3、rsync包含ls功能

[root@backup /]# rsync /etc/
drwxr-xr-x        4096 2017/05/05 09:19:13 .
-rw-------           0 2017/05/03 08:30:18 .pwd.lock
-rw-r--r--       12288 2017/05/04 12:22:51 .rsyncd.conf.swp
-rw-r--r--        4439 2016/04/12 15:56:23 DIR_COL

4、rsync包含scp功能

scp傳輸法

[root@backup /]# scp   /caojiaoyue/* 10.0.0.31:/root/
[email protected]'s password:  注意這裏提示輸入的密碼是接收這些文件機器root用戶的密碼
ca                                                                                     100%    0     0.0KB/s   00:00   
ca1                                                                                    100%    0     0.0KB/s   00:00   
ca2                                                                                    100%    0     0.0KB/s   00:00   
[root@backup /]#

但是scp是全量傳輸,也就是不管對方機器上有沒有你傳輸的文件。你都會傳過去。萬一有文件名字是一樣的。但是內容不一樣的話。就會覆蓋掉。

rsync傳輸法

[root@caojiaoyue ~]# rsync -r -e "ssh -p 22" /root/caojiao 10.0.0.11:/tmp
The authenticity of host '10.0.0.11 (10.0.0.11)' can't be established.
RSA key fingerprint is 01:9a:da:25:04:f2:79:cb:d5:0d:f2:31:6b:8a:fa:f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.11' (RSA) to the list of known hosts.
[email protected]'s password:
[root@caojiaoyue ~]#

命令 參數  源文件 IP:目標文件 

注意rsync傳輸文件是增量的,也就是說 目標機器和源機器上共有的不會發。只發沒有的。從而大大提高了效率

有沒有想過你可以傳輸文件給別的機器。那麼你也可以從別的機器拿數據啊。官方解釋爲拉和推(pull 和 push)

其實可以這樣理解 如果目標文件在你的機器上那麼就是從別人的機器上拿過來啊。如果目標文件在別人機器上那麼肯定就是從你機器上發過去啊

                                          從別人機器 上拿文件

                                          命令 參數    IP目標文件   源文件

                                          發送給別人機器上

                                          命令 參數  源文件 IP目標文件

5、rsync守護進程方式傳輸(工作中常用的。通過守護進程方式實現實時備份等等)

第一步配置rsync服務端的配置文件

注意機器上以前沒有做過守護進程方式的傳輸。默認是沒有配置文件的需要你去創建在編輯的

rsync的配置文件是/etc/rsyncd.conf 注意名字一樣。如果不是這個名字的話那麼rsync是不知道你配置的那個文件是他的配置文件

                                vim /etc/rsyncd.conf 

           
           uid = rsync  執行用戶的uid
           gid = rsync  執行用戶的gid
           use chroot = no
           max connections = 200 最大連接數
           timeout = 300      超過時間如果客戶端300秒沒有發送文件的話就會自動斷開
           pid file = /var/run/rsyncd.pid   存儲這個服務的進程號文件
           lock file = /var/run/rsync.lock    鎖文件  一個客戶端沒有傳送另外一臺傳輸不了。爲了避免負載
           log file = /var/log/rsyncd.log  服務的日誌文件
           ignore errors  忽略錯誤
           read only = false     是否爲只讀文件。當然不是啊 所以false (trep)
           list = false               模塊列表是否可以讓客戶端看
           hosts allow =172.16.1.0/24   可以傳輸的ip段
           hosts deny = 0.0.0.0/32         不可以傳輸的IP段 
           auth users = rsync_backup    傳輸時候用的認證用戶(理解爲賬號吧)
           secrets file = /etc/rsync.password  傳輸時候用的認證密碼
           [backup]     模塊名字
           comment = "backup dir by oldboy"
           path =/backup    存儲的地址

配置文件裏面文件地址等可以自己改

第二步我們剛剛配置文件不是指定了運行這個程序的用戶嗎。如果有就不用創建了。沒有就創建吧(爲了安全一般用不可以登陸的)

 useradd -s /sbin/nologin -M rsync 創建一個不可以登陸的用戶

 id rsync 查看下

第三步創建一個存儲的目錄應爲我們配置文件裏已經寫了爲/backup就創建他吧

mkdir /backup

注意的是我們不是用rsync這個用戶創建的目錄。但是我們是用這個用戶來運行,爲了不發生權限問題我們把這個文件的擁有者和屬組改成rsync

chown -R  rsync.rsync /backup   遞歸改因爲這當你創建這個文件後他會生成一個的隱藏文件。比如點和點點

第四步創建一個存儲密碼的文件。因爲我們配置文件已經指定了/etc/rsync.password所以我們就用它吧

echo rsync_backup:123456 >>/etc/rsync.password

rsync_backup是用戶(即賬號)123456就是密碼。如果有多個用戶或者密碼的話換行寫不要用逗號。但是前提是多個用戶,要在配置文件裏先申明

第五步密碼文件創建好了。默認文件的權限是644 那麼就是誰都可以看這個文件。這樣的密碼豈不是明文的。所以我們要把文件改成600或者400。只要擁有者有看的權限就好了。注意這個文件的擁有者不要是rsync了。如果改了的話。那傳輸也是會不成功的。這個文件的擁有者必須是root

第六步啓動rsync這個守護進程

rsync --daemon

就可以實現客戶端傳輸文件了

守護進程客戶端傳輸文件

rsync 參數 源文件 用戶@IP::目標文件

命令 參數 源文件 用戶@IP::目標文件

和scp不同的收目標文件和IP用兩個::分割

注意:守護進程方式不支持服務端向沒有配置的客戶端拿東西。因爲客戶端什麼都沒有配置。比如說賬號密碼等。非要拿的話,就變成了scp模式了

wKiom1kMQx6BGb5BAAA73hHXMRA673.png

還可以不輸入密碼模式傳輸,

原理是你把密碼,放在一個文件中然後指定密碼所在

命令 參數 源文件 用戶@IP::目標文件 --passwrod-frel=存儲密碼的文件地址

注意存儲密碼的文件要改成000或者400或者600否則會報密碼文件不能被其他用戶訪問的錯

srync參數

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

----bwlimit=RATE實現數據傳輸過程中限速

-v詳細模式輸出,

-a歸檔模式,表示以遞歸方式傳輸文件。並保持所有文件屬性,等於rtopgDl(有星的都包涵)

-r 對子目錄以遞歸模式,即目錄的所有文件都同樣傳輸,注意是小寫r  **

-t 保持文件時間信息     **

-o保持文件屬主信息     **

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

-p保持文件權限         **

-g保持文件屬組信息     **

-D保持設備文件信息     **

-l保留設備軟鏈接        **

-e使用的信道協議,例如指定ssh         -e “ssh -p 22”

--exclude=PATTERN 指定排除不需要傳輸的文件信息類似於tar的排除

-exclude-from=file 文件名所在的目錄文件,既可以實現排除多個文件類似於tar的排除多個




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