rsync只同步指定目錄的方法(已測)
有時候我們需要同步一些目錄或者不同步一些目錄,一些文件,那么就可以參考下面的用法了
參數(shù)說明
在做同步之前必須要知道的含義:
文件
--exclude='*' 排除所有文件,包括目錄,因為在linux一切皆文件,代表排除所有
--exclude='*/' 排除所有目錄
--include='*/' 包含所有目錄
--include='*' 包含所有文件,包括目錄,因為在linux一切皆文件,代表包含所有
上面這些寫到命令里面,不如下面的通過文件配置更適合多個目錄與文件
目錄
--include-from 或 --files-from 只同步部分目錄
--exclude-from 不同步這些目錄
先創(chuàng)建一個 tongbu.txt 支持文件與目錄,規(guī)則寫法支持正則表達式
/a
/b
/index.htm
--files-from="tongbu.txt"
rsync同步指定目錄
rsync使用–include參數(shù)與–exclude參數(shù)來實現(xiàn)同步指定目錄,并且–exclude目錄放在后面。
例如:
linux上文件目錄
ls /usr/local/apache/htdocs/site
aa
bb
cc
dd
ee
..
zz
只想同步aa,bb,ee這三個目錄,其他的不同步。
實現(xiàn)代碼:
/usr/local/rsync/bin/rsync -azv --include "aa/" --include "bb/" --include "ee" --exclude "/*" --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site
說明:
--include “aa/” --include “bb/” --include “ee” 包含了你要同步的目錄 –exclude包含了不同步的目錄所有用“/*”指定。
--exclude “/*” 除了–include同步的目錄外,排除其他目錄
rsync://127.0.0.1/site 為你rsync服務端要同步的目錄
/work/backup/htdocs_bak/site 為你客戶端的目錄
rsync同步指定正則文件(含子目錄)
前陣子做日志備份,把各個服務器上的日志同步到日志服務器上做備份,剛開始比較暴力,把所有壓縮好的*gz文件全部傳送到日志備份服務器上。后來,發(fā)現(xiàn)這種方式非常不好,一旦備份的目錄發(fā)生改變,服務器上又會把它所有的*gz文件全部再傳一遍,即浪費時間又給服務i/o產(chǎn)生不必要的壓力,后來想只同步某天的*gz文件。
需求描述:
有一個類似于這樣的目錄結(jié)構(gòu),子目錄的個數(shù)是不確定的
[root@IND_ tlbb]# tree . |-- ReadMe.txt | |-- Audit | `-- Money_2013-09-10.tgz |-- Audit_2013-09-10.tgz `-- Install
我想同步*.py結(jié)尾的東東
同步完成后
[root@IND_ tlbb]# tree . |-- Audit | `-- Money_2013-09-10.tgz `-- Audit_2013-09-10.tgz
方式1:(失?。?/p>
rsync -auvz –include=”*${YDate}*gz ” ./ 192.168.137.22::tlbb
結(jié)果:會把所有的文件都同步過去了,連Install都同步過去了
方式2:
rsync -aruvz –include=”*${YDate}*gz” –include=”*/” –exclude=”*” ./* 192.168.137.22::tlbb
結(jié)果:能把今天所有的gz文件都正常傳過去嘍,先允許所有的匹配的gz文件,再允許所有子目錄,最后拒絕所有其他的。
看到這里的朋友大家肯定發(fā)現(xiàn)了如果文件夾過多,肯定比較累,直接弄個txt文件將需要同步的與不需要同步都分別弄下就更好了,下面的方法在4.10版本中測試正常
實例篇
1、只同步制定目錄
如果當前目錄文件夾有aa,bb,cc,dd等很多文件夾,我們只同步aa,bb,cc
先新建一個txt文件,例如 include.txt
/aa
/bb
/cc
只需要這么寫就可以了--files-from="include.txt"
@echo off rsync -vzrtopg --progress --no-super --files-from="include.txt" --password-file=wtjb51.secrets /cygdrive/g/www/filesjb51net/web/ jb51@ip::filesjb51
2、不要同步哪些同步
新建一個exclude.txt文件,不同步dd文件夾
dd
--exclude-from=exclude.txt
使用rsync -aP --exclude=upload 只能排除upload文件/目錄。
如果要排除多個文件/目錄,怎么辦?
那只能建一個exclude.list,里面填寫要排除的目錄(一行一個文件/目錄),然后rsync -aP --exclude-from=“exclude.list“
如:rsync -aP --exclude-from=/root/exclude.list 192.168.113.118::web_bak/www/ /data/server/www/ (從118同步數(shù)據(jù)到本機)
@echo off rsync -vzrtopg --progress --no-super --password-file=wtjb51.secrets --exclude-from="nolitpic.txt" /cygdrive/e/webroot/wwwjb51net/do/uploads/litimg/ wtjb51@192.168.1.9::wwwjb51douploadlimit
nolitpic.txt
/08*
/09*
/1*
/20*
/21*
/22*
/2301*
/2302*
補充
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
補充:
rsync -vau --files-from="/root/syncto.txt" --exclude-from="/root/excludefile.txt" /data/web/ root@192.168.11.12:/data/web/用這種方式就可以了,其中syncto.txt寫入要同步的文件,execludefile.txt存不需要同步的文件
相關文章
親自教你在netty中使用TCP協(xié)議請求DNS服務器的詳細過程
DNS的全稱domain name system,既然是一個系統(tǒng)就有客戶端和服務器之分,這篇文章主要介紹了在netty中使用TCP協(xié)議請求DNS服務器的全過程,需要的朋友可以參考下2022-07-07解析服務器常見錯誤代碼500、501、502、503、504、505
這篇文章主要介紹了服務器常見錯誤代碼500、501、502、503、504、505的相關知識,需要的的朋友參考下吧2017-05-05完美解決IIS和APACHE的301重定向(帶參數(shù))
感覺BAIDU spider對404的重定向似乎無動于衷,于是近日干脆對原失效的鏈接重新設置301重定向。2010-11-11Windows遠程數(shù)據(jù)、文件同步工具cwRsync配置方法
這篇文章主要介紹了Windows遠程數(shù)據(jù)、文件同步工具cwRsync配置方法,需要的朋友可以參考下2015-10-10