rsync 工具介紹及常用選項

1、rsync 工具介紹

rsync 工具介紹及常用選項

數據備份,毫無疑問很重要,從字面上的意思可以理解爲remote sync (遠程同步)。Rsync不僅可以遠程同步數據(類似於scp),當然還可以本地同步數據(類似於cp),但不同於cp或scp的一點是,rsync不像cp/scp一樣會覆蓋以前的數據(如果數據已經存在),它會先判斷已經存在的數據和新數據有什麼不同,只有不同時纔會把不同的部分覆蓋掉。
如果linux沒有rsync命令,使用 yum install -y rsync 安裝,見下圖,
rsync 工具介紹及常用選項
rsync 工具介紹及常用選項
上圖中,舉了個例子,使用命令 rsync -av /etc/passwd /tmp/1.txt,將 /etc/passwd 文件拷貝到 /tmp/ 目錄下並且更改文件名稱爲 1.txt 。a 這個選項,包含了好幾個選項,等會再細講。v 這個選項是可視化的意思,可以看到拷貝的過程。
rsync 同時還支持遠程拷貝,輸入命令 rsync -av /etc/passwd [email protected]:/tmp/1.txt,回車,見下圖,
rsync 工具介紹及常用選項
遠程的拷貝,用戶名@IP地址,首次連接會提示是否要繼續連接,我們輸入yes繼續,當建立連接後,再輸入密碼。這條命令的結果沒有列出 passwd 這個文件名,是因爲剛剛已經拷貝過了,並且192.168.218.128 是本機的IP地址。用這個命令,僅僅是說明這個拷貝的方法和格式。
rsync的命令格式:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]IP:DEST
rsync [OPTION]... [USER@]IP:SRC DEST
rsync [OPTION]... [USER@]IP::SRC DEST
rsync [OPTION]... SRC [USER@]IP::DEST
OPTION 表示選項,例如 -av,SRC 表示原目錄或文件,DEST 表示目標目錄或文件,中括號[]裏的user@是可以省略的。
剛纔的例子當中,第一個例子即爲第一種格式,第二個例子即爲第二種格式,但不同的是,我並沒有加user@host ,如果不加默認指的是當前終端的用戶.。第三種格式是從遠程目錄同步數據到本地。第四種以及第五種格式使用了兩個冒號“:”,這種方式和前面的方式的不同在於驗證方式不同,稍後詳細介紹。
省略 user@,見下圖,
rsync 工具介紹及常用選項

2、rsync 常用選項

rsync 工具介紹及常用選項

-a 歸檔模式,表示以遞歸方式傳輸文件,並保持所有屬性,等同於-rlptgoD, -a選項後面可以跟一個 --no-OPTION 這個表示關閉,-rlptgoD中的某一個例如 -a--no-l 等同於-rptgoD
-r 對子目錄以遞歸模式處理,主要是針對目錄來說的,如果單獨傳一個文件不需要加-r,但是傳輸的是目錄必須加-r選項,類似cp時的-r選項
-v 打印一些信息出來,比如速率,文件數量等,知道同步的過程
-l 保留軟鏈結
-L 向對待常規文件一樣處理軟鏈結,如果是原目錄或文件中有軟連接文件,則加上該選項後將會把軟連接指向的目標文件拷貝到目標目錄或文件下
-p (小寫)保持文件的權限屬性
-o 保持文件的屬主信息
-g 保持文件的屬組信息
-D 保持設備文件信息
-t 保持文件時間屬性
--delete 刪除目標文件中原文件沒有的文件
--exclude 過濾指定文件,如 --exclude "logs"會把文件名包含logs的文件或者目錄過濾掉,不同步。文件名可以是萬用字符模式(如.txt)
-P (大寫)顯示同步過程,比如速率,比 -v 更加詳細
--progress 在同步的過程中可以看到同步的過程狀態,比如統計要同步的文件數量、同步的文件傳輸速度等等
-u 加上這個選項後,如果目標目錄的文件比原目錄的文件新,則不同步
-z 傳輸時壓縮

先來做一下準備工作,同步一個測試目錄,見下圖,
rsync 工具介紹及常用選項
命令 rsync -av /root/111/ /tmp/111_dest/ ,將原目錄/root/ 下的目錄 /111/ 同步到 /tmp/ 目錄下並且更改名稱爲 /111_dest/ 目錄。-av 在這邊的作用就是包含拷貝目錄、軟鏈接、屬主、屬組、文件權限等選項,可視化拷貝過程。
lys3這邊是軟鏈接文件,指向了原文件 /tmp/lys2,見下圖,
rsync 工具介紹及常用選項
上圖就是a選項裏面的l起的作用,保留了軟鏈接文件。與 l 相對應的就是 L,接着來操作一下 L 選項,輸入命令 rsync -avL /root/111/ /tmp/111_dest/,這邊輸入L就相當於把 a 選項裏面的 l 覆蓋掉,見下圖,
rsync 工具介紹及常用選項
上圖中,直接輸入命令 rsync -avL /root/111/ /tmp/111_dest/ ,出現報錯,顯示軟鏈接失效。爲了保證軟鏈接可以正常,要創建一個文件 /tmp/lys2,使用命令 ls -l 111/ 查看的時候,就能看到軟鏈接指向的文件顯示正常。接着使用同步命令加 L 選項就可以執行了,結果第二行顯示 lys3 ,說明同步了 lys3 文件,那麼 lys3 真正指向的文件是 /tmp/lys2 ,接着詳細查看一下原目錄和目標目錄,見下圖,
rsync 工具介紹及常用選項
目錄 /tmp/111_dest/ 下的文件 lys3,原本應該是軟鏈接文件的,現在變成了一個正常的文件,而目錄 /root/111/ 下的文件 lys3 還是一個軟鏈接文件,指向的是 /tmp/lys2 。接着往 lys2 裏面寫一些東西,來驗證一下,見下圖,
rsync 工具介紹及常用選項
在文件 /tmp/lys2 上面輸入內容,再同步一下目錄,接着查看目錄 /tmp/111_dest/lys3 的內容,會發現就是文件 lys2 上的內容。這個就是 L 選項的作用,可以把軟鏈接指向的原文件拷貝到目標文件。
接着往下操作,見下圖,
rsync 工具介紹及常用選項
在目錄 /tmp/111_dest/ 目錄下,新建一個文件 new.txt,然後使用同步命令 --delete 選項,命令執行的過程中出現了 deleting new.txt ,刪除了這個文件,然後就看到新建的 new.txt 文件沒有了。這就是 --delete 的作用。
現在來看一下過濾 --excluede 的作用,見下圖,
rsync 工具介紹及常用選項
命令 rsync -avL --exclude ".txt" /root/111/ /tmp/111dest/ ,執行的過程中看不到後綴 .txt 的文件,結果也確實沒有出現 .txt 的文件。
上面是單個 --exclude 的命令,還有多個的情況,輸入命令 rsync -avL --exclude ".txt" --exclude "lys" /root/111/ /tmp/111dest/,見下圖,
rsync 工具介紹及常用選項
同時去掉了 .txt 結尾和 lys 開頭的文件。
來看一下 P(大寫)的選項,見下圖,
rsync 工具介紹及常用選項
看一下 u 選項,準備工作見下圖,
rsync 工具介紹及常用選項
回車,進入下圖,
rsync 工具介紹及常用選項
按下字母 e ,進入下圖,
rsync 工具介紹及常用選項
隨機輸入上圖紅色框框的內容,保存並退出。接着輸入命令 rsync -avP /root/111/ /tmp/111_dest/,回車,見下圖,
rsync 工具介紹及常用選項
可以看到,文件 12.txt 的內容並沒有改變。說明這些操作都是以原文件爲主,目標文件做了什麼改變都只能和原文件保持同步。
現在先編輯一下 12.txt 文件的內容,輸入命令 vim 12.txt,回車,見下圖,
rsync 工具介紹及常用選項
隨機輸入上圖紅色框框的內容,保存並退出。接着輸入命令 rsync -avPu /root/111/ /tmp/111_dest/,回車,見下圖,
rsync 工具介紹及常用選項
可以看到,12.txt 文件的內容還在,並沒有和原文件保持同步 ,而原文件 /root/111/12.txt 裏面的內容還是原來的內容,沒有受目標文件的影響。這就是 u 選項的作用。

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