1. 程式人生 > 實用技巧 >5月14日

5月14日

10.28 rsync工具介紹


1. rsync工具介紹

rsync是資料備份工具(字面意思可以理解為遠端同步),不僅可以遠端同步資料,而且可以本地同步數據(類似與cp),但不同於cp或scp的一點是,它不會覆蓋以前的資料(如果資料已經存在),而是先判斷已經存在的資料和新資料的差異,只有資料不同時才會把不相同的部分覆蓋。

1.1 安裝rsync命令yum install -y rsync

2.rsync的用法舉例:

/etc/passwd同步到/tmp/目錄下,並改名為1.txt,操作如下

命令:rsync -av/etc/passwd /tmp/1.txt

blob.png

2.1 遠端複製,資料備份的形式就是這樣的形式[email protected]

IP:path,比如[email protected]47.97.163.117:/tmp如下:

命令:rsync -av /tmp/1.txt [email protected]:/tmp/2.txt

blob.png

3. rsync格式:

rsync [OPTION] … SRC(原始檔) DEST(目標檔案)

rsync [OPTION] … SRC [[email protected]]host:DEST

rsync [OPTION] … [[email protected]]host:SRC DEST

rsync [OPTION] … SRC [[email protected]]host::DEST

rsync [OPTION] … [[email protected]]host::SRC DEST

在前面的例子中,第一個例子為第一種格式,第二個例子為第二種格式,但不同的是並沒有加使用者名稱[email protected],如果不加預設指的是root。第三種格式是用遠端目錄同步資料到本地。第四種和第五種格式使用了兩個冒號,這種格式和其他格式的驗證方式不同。

10.29-10.30 rsync常用選項


1. rsync常用選項

-a 這是歸檔模式,表示以遞迴方式傳輸檔案,並保持所有屬性,它等同於-rlptgoD-a選項後面可以跟一個--no-OPTION,表示關閉-rlptgoD中的某一個,比如

-a--no-l等同於-rlptgoD -r 表示以遞迴模式處理子目錄。它主要是針對目錄來說的,如果單獨傳一個檔案不需要加-r選項,但是傳輸目錄時必須加。 -v 表示列印一些資訊,如檔案列表,檔案數量等 -l 表示保留軟連結 -L 表示像對待常規檔案一樣處理軟連結,如果SRC檔案中有軟連結時,則加上該選項後,將會把軟連結指向的目標檔案一起復制到DEST -p 表示保持檔案許可權 -o 表示保持檔案屬主資訊 -g 表示保持檔案屬組資訊 -D 表示保持裝置檔案資訊 -t 表示保持檔案時間資訊 --delete 表示刪除DESTSRC中沒有的檔案 --exclude=PATTERN 表示指定排除SRC中不需要傳輸的檔案,等號後面跟檔名,可以用萬用字元如*.txt --progress 在同步的過程中可以看到同步的過程狀態,比如統計要同步的檔案數量、同步的檔案傳輸速度等。 -u 表示把dest中比src還新的檔案排除掉,不會覆蓋 -z 加上該選項,將會在傳輸過程中壓縮

常用的選項是-a-v-z--delete--exclude

1.1 準備實驗的目錄和檔案

blob.png

blob.png

1.2 -av選項 把root下的rsync目錄同步到tmp下並且改名rsync_dest,示例如下

命令:rsync-av /root/rsync/ /tmp/rsync_dest/

blob.png

1.2.1 加上-L選項後,同步軟連線檔案時會把原始檔同步,示例如下:

命令:rsync-avL /root/rsync/ /tmp/rsync_dest/

blob.png

1.3 --delete 同步時刪除目標目錄rsync_dest中源目錄rsync沒有的檔案,示例如下

命令:rsync -avL --delete/root/rsync/ /tmp/rsync_dest/

blob.png

1.4 --exclude過濾指定檔案,同步時過濾掉檔名或目錄名為.txt,不同步(支援寫多個exclude,但不支援同一個exclude有多個條件),示例如下:

命令:rsync -avL --exclude "*.txt“/root/rsync/ /tmp/rsync_dest/

blob.png

1.4.1 過濾掉帶1開頭,多選項如下:

命令:rsync -avL--exclude "*.txt" --excelude "1"/root/rsync/ /tmp/rsync_dest/

1.5 -P選項顯示同步過程,比如速率,比-v更加詳細如下:

命令:rsync-avP/root/rsync/ /tmp/rsync_dest/

blob.png

1.6 -u 選項如果目標檔案中的檔案比原始檔新則不同步,示例如下

命令:rsync -avPu/root/rsync/ /tmp/rsync_dest/

blob.png


10.31 rsync通過ssh同步

1. rsync通過ssh同步

1.1 ssh同步到另外一臺主機(從本機拷貝到遠端主機)

命令:rsync -av /etc/passwd 47.97.163.117:/tmp/cfk.txt

blob.png

1.2 反過來把遠端主機資料拷貝到本機

命令:rsync -avP 47.97.163.117:tmp/cfk.txt/tmp/123.txt

blob.png

1.3如果對方機器埠不是22的話,那應該如何,示例如下

命令:rsync -avP-e "ssh -p 22"/etc/passwd 47.97.163.117:/tmp/cfk.txt

blob.png


轉載於:https://blog.51cto.com/404006045/2116331