Linux命令rsync使用總結

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

rsync命令簡介

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

使用總結

經常使用選項解釋

--files-from

指定須要同步的文件。網絡

有以下目錄結構:ssh

若咱們只想導入1和2兩個目錄及其裏面的內容,咱們能夠執行spa

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

能夠看到結果符合咱們預期。code

如用--files-from呢?htm

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

test.txt內容爲blog

1get

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

結果和上面同樣。

相關文章
相關標籤/搜索