[英]How to rsync file pattern in subfolders
我具有以下遠程文件夾/文件結構:
/home/user/backup/siteA/regionA/data.sql
/home/user/backup/siteA/regionA/data.clean.sql
/home/user/backup/siteA/regionA/data.lite.sql
/home/user/backup/siteA/regionA/files/
/home/user/backup/siteA/regionB/data.sql
/home/user/backup/siteA/regionB/data.clean.sql
/home/user/backup/siteA/regionB/data.lite.sql
/home/user/backup/siteA/regionB/files/
/home/user/backup/siteA/regionC/data.sql
/home/user/backup/siteA/regionC/data.clean.sql
/home/user/backup/siteA/regionC/data.lite.sql
/home/user/backup/siteA/regionC/files/
/home/user/backup/siteA/regionD/data.sql
/home/user/backup/siteA/regionD/data.clean.sql
/home/user/backup/siteA/regionD/data.lite.sql
/home/user/backup/siteA/regionD/files/
/home/user/backup/siteB/regionA/data.sql
/home/user/backup/siteB/regionA/data.clean.sql
/home/user/backup/siteB/regionA/data.lite.sql
/home/user/backup/siteB/regionA/files/
/home/user/backup/siteB/regionB/data.sql
/home/user/backup/siteB/regionB/data.clean.sql
/home/user/backup/siteB/regionB/data.lite.sql
/home/user/backup/siteB/regionB/files/
/home/user/backup/a-script.sh
/home/user/backup/backup.log
/home/user/backup/siteC
...
...
我需要將*.clean.sql
和*.lite.sql
從siteA同步到本地類似的結構,例如:
/var/data/dbs/siteA/regionA/data.clean.sql
/var/data/dbs/siteA/regionA/data.lite.sql
我似乎無法讓rsyn
c包含/排除正確的內容。 我在嘗試:
/usr/bin/rsync --archive --del --verbose --verbose --compress --progress --exclude-from=excludes.txt --rsh='ssh -q' --dry-run user@remote:/home/user/backup/siteA /var/data/dbs/siteA
我的excludes.txt包含:
+ *.clean.sql
+ *.lite.sql
- *
但是我得到:
receiving incremental file list
[sender] hiding directory siteA because of pattern *
我有一個腳本,它可以在每個站點區域的基礎上執行此操作,但不能作為“整體”來執行。 我嘗試將星號和斜線添加到排除列表中,但似乎找不到正確的組合。 有什么建議么?
我有更好的結果
/usr/bin/rsync --archive --del --compress --progress --exclude-from=excludes.txt --rsh='ssh -q' user@remote:/home/user/backup/siteA /var/data/dbs/siteA
與excludes.txt
+ */
+ *.clean.sql
+ *.lite.sql
- *
但是,這也會解析所有文件文件夾的內容(盡管會跳過/排除它們),這會大大減慢它的速度(並使用龐大的目錄列表污染rsync輸出)。
有“最大深度”參數嗎?
怎么樣:
cd /home/user/backup
find site* -name data.clean.sql -o -name data.lite.sql > filestobackup
rsync --archive --verbose --del --compress --progress \
--files-from=filestobackup -d \
--rsh='ssh -q' \
user@remote:/home/user/backup/ /var/data/dbs/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.