1. 程式人生 > >Linux命令rsync使用總結

Linux命令rsync使用總結

href roo rsync erl img des 默認 from clu

詳細用法見:https://www.cnblogs.com/oboth-zl/articles/10334754.html

rsync命令簡介

主要用於數據同步、備份和鏡像,除了本地使用之外,也可以通過rsync或者ssh協議進行網絡數據同步。

使用總結

常用選項解釋

--files-from

指定需要同步的文件。

有如下目錄結構:

技術分享圖片

若我們只想導入1和2兩個目錄及其裏面的內容,我們可以執行

rsync -av rsync/1 rsync/2 rsync-0

技術分享圖片

可以看到結果符合我們預期。

如用--files-from呢?

rsync -av  --files-from=test.txt  rsync rsync-1

test.txt內容為

1

2

1.txt

執行後的目錄結構

技術分享圖片

結果和我們預期的不一樣,只有指定的文件和目錄,而沒有目錄下的其他內容。

所以,--files-from選項只會同步指定的文件和目錄,而不會同步目錄下的其他內容。

--exclude-from/--include-from

兩個選項含義相同,互相可作替換。用來指定包含或者不包含的文件。

基本格式:

+/include file

-/exclude file

/ 在名字前表根目錄

/ 在後表目

默認包含所有文件和目錄,所以 + 單獨使用無意義,常和 - 搭配使用。

比如

cat > rule.txt << EOF
+ Desktop/ + Desktop/* + .bashrc + .cshrc + /* - * EOF

rsync -av --exclude-from=rule.txt root rsync_dir

此規則表示僅同步Desktop及其下級目錄和文件,以及.bashrc、.cshrc。並不會同步Desktop/*/再下一級目錄,這裏需要註意。

而當規則換成這樣

cat > rule.txt << EOF
+ /root/Desktop/
+ /root/Desktop/*
+ /root/.bashrc
+ /root/.cshrc
+ /*
- *
EOF

結果和上面一樣。

Linux命令rsync使用總結