35.rsync工具介紹 經常使用選項 經過ssh同步

10.28 rsync工具介紹linux

10.29/10.30 rsync經常使用選項ssh

10.31 rsync經過ssh同步工具

 

 

10.28 rsync工具介紹:ui

 

linux文件同步工具rsync rsync很實用,也很重要日誌

像咱們從A機器到B機器,咱們去傳輸文件、遠程備份一些數據。ip

也能夠從本機傳輸,像從A目錄到B目錄,相似於cp,但不同rem

假設一個場景,咱們要每小時從A目錄拷貝到B目錄一次,而A目錄在不停的增長。這時候,咱們用cp就不合適了,由於不方便浪費時間,還浪費磁盤不停的讀寫。而rsync就適合這種場景,他只同步一些更新的文件,還支持遠程的同步(A級器到B機器)同步

 

 

~1. rsync -av /etc/passwd /tmp/123.txt 將passwd文件拷貝到tmp下,並更名叫123.txttest

[root@axinlinux-01 system]# rsync -av /etc/passwd /tmp/123.txtmodule

sending incremental file list

passwd 輸出文件

 

sent 1,071 bytes received 35 bytes 2,212.00 bytes/sec

發送了多少個字節 多少字節每秒

total size is 979 speedup is 0.89

一共有多大 速度是多少

 

~2. rsync /etc/passwd root@192.168.159.130:/tmp/123.txt 遠程去拷貝、同步。A機器到B機器之間的同步、拷貝

前面寫輸出文件路徑,後面跟對方機器的用戶名,而後在@對方的IP,再:,最後爲他輸入的路徑

 

~3. rsync 的格式:

rsync [OPTION(選項)] ... SRC(源目錄)DEST(目標目錄或目標文件) 本機格式,以上~1.就是這種格式

rsync [OPTION] ...SRC [user@]host:DEST user@是能夠省略的,在本機模式中,省略後是以當前用戶做爲輸入用戶。host爲他的IP 以上~2.就是這種模式

rsync [OPTION] [user@]host:SRC DEST 反拷貝。遠程的目錄或文件,拷貝到本機的目錄下。先寫user@IP:跟他的輸出文件。後面寫輸入路徑或文件

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

 

10.29/10.30 rsync經常使用選項:

 

~ -a 包含-rtplgoD

-a包含-r t p l g o D選項

~ -r 同步目錄是要加上,相似cp時的-r選項

~ -v 同步是顯示一些信息,讓咱們知道同步的過程

~ -l 保留軟鏈接

~ -L 加上該選項後,同步軟鏈接時會把源文件給同步

與-l的區別。若是A傳到B,加上l也會同步軟鏈接,但B上沒有A機器上的軟連接指向的源文件,同樣也不能使用軟鏈接。加上-L會防止這樣狀況發生,會把軟鏈接的源文件一塊兒給同步過去

~ -p(小寫) 保持文件的文件的權限屬性

好比700、645等等的權限屬性,在這是什麼權限,在那就是什麼權限

~ -o 保持文件的屬主

假如在這是www用戶,在那就是www用戶。若是沒有www用戶,就會顯示puid。

~ -g 保持文件的屬組

假如在這是root屬組,在那就是root屬組

~ -D 保持設備文件信息

瞭解便可

~ -t 保持文件的時間屬性

像mtime、ctime等等保留過去

~ --delete 刪除DEST中SRC沒有的文件 (頗有用)

刪除目標文件中源文件所沒有的文件。假如,A到B。B文件中有123,A沒有。同步過去的時候,爲保持一致,會刪除B中的123,因此,A和B徹底同樣

~ --exclude 過濾指定文件,如--exclude 「logs」會把文件名包含logs的文件或目錄過濾掉,不一樣步

假如文件中有日誌,可是日誌對於目標文件沒用。加上--exclude後面跟要排除的文件的名字

~ -P(大寫) 顯示同步過程,好比速率,比-v更加詳細

好比文件很大,咱們不知道是否卡死,可加上-P

~ -u 加上該選項後,若是DEST中的文件比SRC新,則不一樣步

假如,咱們目標文件的mtime比源文件新。(可理解爲,咱們以前對目標文件作過更改,目標文件比源文件更有價值。而源文件比較舊。那麼則不一樣步)創建在咱們的須要是 以新的爲主

~ -z 傳輸是壓縮

zip的意思。爲的是傳輸的時候更快,節省帶寬。傳輸的過程會壓一下,傳到目標文件的時候,就自動解壓了。只不過是爲了節省帶寬而已

 

 

(10.30 rsync) 實例:

-av

[root@axinlinux-01 sed]# rsync -av /root/sed/ /tmp/sed_dest/ 凡是同步目錄的時候,都要在源目錄和目標目錄後面加 / 意思就是,把/root/sed/同步到tmp下,而且該名字爲sed_dest

sending incremental file list

./

1.txt

test.txt

test.txt.bak

x

2/

 

sent 2,288 bytes received 103 bytes 4,782.00 bytes/sec

total size is 1,946 speedup is 0.81

 

-avL

[root@axinlinux-01 ~]# rsync -avL /tmp/11.txt /root/sed/ 在-av後面加L,可把a裏面包含的l覆蓋掉。L是這樣用的

sending incremental file list

11.txt 會提示11.txt這個文件有軟鏈接,一塊兒同步過去

 

sent 131 bytes received 35 bytes 332.00 bytes/sec

total size is 39 speedup is 0.23

 

 

--delete

[root@axinlinux-01 ~]# touch /tmp/sed_dest/new.txt 咱們如今目標目錄下touch一個多文件

[root@axinlinux-01 ~]# rsync -av --delete /root/sed/ /tmp/sed_dest 加上-delete

sending incremental file list

deleting new.txt 會提示這個多餘的文件

./

1.txt

11.txt

 

sent 352 bytes received 69 bytes 842.00 bytes/sec

total size is 2,011 speedup is 4.78

[root@axinlinux-01 ~]# ls /tmp/sed_dest 咱們在ls一下,發現new.txt就沒有了

11.txt 1.txt 2 test.txt test.txt.bak x

 

--exclude (也支持多個--exclude過濾)

[root@axinlinux-01 ~]# rsync -av --exclude "*.txt" /root/sed/ /tmp/sed_dest 過濾掉全部的txt文件

sending incremental file list

./ 在這就能夠發現沒有txt文件

test.txt.bak

x

2/

 

sent 1,190 bytes received 65 bytes 2,510.00 bytes/sec

total size is 980 speedup is 0.78

[root@axinlinux-01 ~]# ls !$ ls看一下

ls /tmp/sed_dest

2 test.txt.bak x

[root@axinlinux-01 ~]# touch /root/sed/axin.txt 咱們先touch一個文件,在--exclude

[root@axinlinux-01 ~]# rsync -av --exclude "*.txt" --exclude "axin*" /root/sed/ /tmp/sed_dest 也支持多個--exclude

sending incremental file list

./

 

sent 121 bytes received 20 bytes 282.00 bytes/sec

total size is 980 speedup is 6.95

[root@axinlinux-01 ~]# ls !$

ls /tmp/sed_dest

2 test.txt.bak x

 

-P

[root@axinlinux-01 ~]# rsync -avP --delete /root/sed/ /tmp/sed_dest

sending incremental file list

./

1.txt

39 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=6/8)

11.txt

39 100% 38.09kB/s 0:00:00 (xfr#2, to-chk=5/8)

axin.txt

0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=4/8)

test.txt

953 100% 930.66kB/s 0:00:00 (xfr#4, to-chk=3/8)

test.txt.bak

980 100% 957.03kB/s 0:00:00 (xfr#5, to-chk=2/8)

x

0 100% 0.00kB/s 0:00:00 (xfr#6, to-chk=1/8)

2/

 

sent 2,475 bytes received 141 bytes 5,232.00 bytes/sec

total size is 2,011 speedup is 0.77

 

-u

[root@axinlinux-01 ~]# vi /tmp/sed_dest/1.txt 咱們先修改一下目標文件1.txt。知足他事假上的一個環境

[root@axinlinux-01 ~]# rsync -avPu --delete /root/sed/ /tmp/sed_dest 加-u試一下

sending incremental file list

./

 

sent 211 bytes received 20 bytes 462.00 bytes/sec

total size is 2,011 speedup is 8.71

[root@axinlinux-01 ~]# cat /tmp/sed_dest/1.txt cat一下,發現是修改後的。也就是加-u會保護你修改過的目標文件

tmpttttttttttttttttttttttttttt

 

 

 

 

 

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

 

 

10.31 rsync經過ssh同步:

 

 

rsync經過ssh方式同步(A到B,A和B都要安裝rsync)

 

~1. rsync -av test1/ 192.168.159.130:/tmp/test2/

咱們給另外一臺機器同步數據

[root@axinlinux-01 ~]# rsync -avPu /root/sed/ 192.168.159.130:/tmp/sed_dest 不指定用戶的話就是對方的root用戶

root@192.168.159.130's password: 要輸入密碼

sending incremental file list

created directory /tmp/sed_dest

./

1.txt

39 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=6/8)

11.txt

39 100% 38.09kB/s 0:00:00 (xfr#2, to-chk=5/8)

axin.txt

0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=4/8)

test.txt

953 100% 930.66kB/s 0:00:00 (xfr#4, to-chk=3/8)

test.txt.bak

980 100% 957.03kB/s 0:00:00 (xfr#5, to-chk=2/8)

x

0 100% 0.00kB/s 0:00:00 (xfr#6, to-chk=1/8)

2/

 

sent 2,475 bytes received 177 bytes 408.00 bytes/sec

total size is 2,011 speedup is 0.76

咱們B機器上看一下,有沒有傳過來

[root@aminglinux-02 ~]# ls /tmp/sed_dest 是有的

11.txt 1.txt 2 axin.txt test.txt test.txt.bak x

 

 

~2. rsync -av -e "ssh -p 22" test1/ 192.168.159.130:/tmp/test2/

咱們有時候的端口可能不是默認的22端口,那咱們能夠給他指定端口。 -e "ssh -p 22"

[root@axinlinux-01 ~]# rsync -avPu -e "ssh -p 22" /root/sed/ /tmp/sed_dest

sending incremental file list

./

1.txt

39 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=6/8)

11.txt

39 100% 38.09kB/s 0:00:00 (xfr#2, to-chk=5/8)

axin.txt

0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=4/8)

test.txt

953 100% 930.66kB/s 0:00:00 (xfr#4, to-chk=3/8)

test.txt.bak

980 100% 957.03kB/s 0:00:00 (xfr#5, to-chk=2/8)

x

0 100% 0.00kB/s 0:00:00 (xfr#6, to-chk=1/8)

2/

 

sent 2,479 bytes received 141 bytes 5,240.00 bytes/sec

total size is 2,011 speedup is 0.77

 

 

rsync經過服務的方式同步

要編輯配置文件 /etc/rsyncd.conf

啓動服務rsync --daemon

格式: rsync -av test1/ 192.168.159.130::module/dir/

相關文章
相關標籤/搜索