入門一班 20181031 rsync

10月31日任務

10.28 rsync工具介紹
10.29/10.30 rsync常用選項
10.31 rsync通過ssh同步


Linux文件同步工具 rsync


image.png

非常實用和重要的一個工具。在日常的運維工作中每天都要用到。傳輸文件從A到B,備份到遠程的數據等都會使用到這個工具。 不僅僅可以從一臺到另一臺也可以從本機到本機從一個目錄到另一個目錄,類似cp但是又不一樣。

比如,A目錄下數據拷貝到B目錄去,而且A目錄的數據一直在更新,要求每小時拷貝一次。

但是如果是使用cp命令的話,就會覆蓋了。但是覆蓋後就完全不知道增加的文件是什麼了,每次增加的時候無法體現。同時會浪費IO,讀寫同時進行。

這個時候就不需要使用cp了,使用rsync,它可實現增量的拷貝,同步的時候僅同步變更的文件。也支持遠程。兩個不同的ip機器,也可以使用rsync遠程的同步。


本地路徑的拷貝

rsync -av  原始目錄  目標目錄

-v 可視化,即可看到拷貝的過程。注意,使用這個命令和選項的時候,目標目錄必須都存在,否則的話不行。不會自動生成路徑目錄。

image.png


遠程路徑的拷貝,目標機器的用戶以及ip地址都需要完整

rsync  -av /目錄  用戶名@ip:/目錄

rsync -av /etc/passwd [email protected]:/tmp/1.txt 注意第一次發送的時候目標機器沒有安裝rsync包,所以沒法接收。

image.png

image.png

以下就是rsync的語法 src源目錄/文件 dest目標目錄

rsync [option] ...src dest 

rsync [option] ...src [user@]host:dest


rsync [option] ...[user@]host:src dest 將遠程的目錄或文件拷貝到本地的目錄下,前面是遠程的,後面是本地的

image.png

rsync [option] ...src [user@]host::dest 兩個冒號和一個冒號是不一樣的 

rsync [option] ...[user@]host::src dest


rsync的常用選項

image.png

-a 包含了-rtplgoD就是說-a all 就包括了後面的那些選項 -r -t -p -l -g -o -D 只要寫一個-a 就可以了

-r 同步目錄時候要加上,類似cp的時候-r選項

-v 可視化,告訴你同步的過程信息

-l 保留軟鏈接

-L 加上該選項後,同步軟鏈接時候會把源文件給同步,不僅僅是軟鏈接這個文件,同時真正的軟鏈接指向的文件也過去了。這樣的話就不會出現只來軟的不來硬的了。

-p 保持文件的權限屬性 755 644到目標機器後的權限依然不變

-o 保持文件的屬主 如果目標那邊沒有這個屬主,就會顯示puid 

-g 保持文件的屬組 這邊是root 那邊也是root

-D 保持設備文件信息 

-t 保持文件的時間屬性 各種修改時間 創建時間等等還是保持一樣

--delete 刪除目標目錄中源目錄沒有的文件 比如A目錄到B目錄後,如果想保持一摸一樣的狀態,B中有A沒有的文件,就會將這個刪掉。這個很有用,如果想保持一摸一樣就加這個選項。

--exclude 過濾指定文件,如--exclude “logs”會把文件包含logs的文件或目錄過濾掉,不同步,支持通配

-P 顯示同步過程,比如速率。比-v更詳細

-u  update的意思。加上該選項後,如果目標目錄中的文件比源文件新就不同步。A有123三個文件 B有124三個文件  但是B中12比A中的新,修改時間更新。所以如果A中的文件雖然拷貝過去了,但是實際更老,所以加上-u就不覆蓋了。

-z zip的意思 傳輸時壓縮,這樣更快。傳之前壓縮,傳到後解壓,節省帶寬。


10.30 rsync常用選項(下)

同步目錄的時候需要在目錄的後面加上一個斜槓,目標目錄也要加,同時要有新的目錄的名字

-av的作用是 a基本上全部包括那些信息了。

image.png

可以從下面看到,修改時間,其他的所有的屬性都是按照原來的來的。

image.png


-L的作用是將軟鏈接指向的源文件拷貝過去,然後拷貝之後的軟鏈接文件變成了一個文件,而它這個文件的內容就是之前軟鏈接指向的文件,但是此時它已經不是軟鏈接了,而是一個包含值的文件。


--delete 目的是兩個目錄完全一致,如鏡像一般。

image.png


--exclude 去掉不想要的文件/文件類型,不支持連寫, 但是支持一個一個寫,--exclude "*.txt" --exclude "aming*" 過濾掉txt文件以及aming開頭的文件

image.png

image.png


-P 對於傳輸很大的文件的時候,監控文件傳輸過程非常有幫助。

image.png


如果有特殊需求希望目標目錄下的某個文件不被覆蓋,因爲它有某種原因在目標目錄下保持比源目錄文件新。這個時候就加上u選項,可以保護目標目錄下更新的文件不被源目錄替換。

image.png


rsync通過ssh同步

image.png


rsync通過ssh方式同步

rsync -av test1/ 192.168.133.132:/tmp/test2/

既可以將本機傳到其他機器,也可以其他機器傳到本機。(推文件和拉文件)

image.png


假如對方端口不是22,就需要加一個選項指定端口  -e "ssh -p 22"

rsync -av -e "ssh -p 22" test1/192.168.166.132:/tmp/test2


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