Rsync
使用文本文件的 Rsync 排除目錄不起作用
我有以下
rsync
命令來創建備份,我想從網站中排除記憶體文件夾:rsync -aAXv --delete --exclude-from='/usr/local/maxicron/rsync/conf/exclude.txt' /home/admin/domains/server.com/public_html /backup/rsync/local
為了展示, 的內容
exclude.txt
只有一行/home/admin/domains/server.com/public_html/var/cache/*
該命令通過從 public_html 創建備份來工作,但我仍然得到在備份文件中創建的記憶體文件夾
/backup/rsync/local
。預期的結果是文件夾記憶體中不應包含任何內容。我在某處讀到該
exclude-from
命令將使用源備份中的絕對路徑。所以我也改變了這個排除行/home/admin/domains/server.com/public_html/var/cache/*
對此
/var/cache/*
或者
var/cache/*
或者
./var/cache/*
但是它們都不起作用,我仍然創建了記憶體文件夾。也沒有錯誤。任何想法?
我不確定為什麼在文本文件中聲明的絕對路徑不起作用。因此,我像這樣添加了另一個名為
--relative
rsync 的選項,並將路徑保留為該文本文件中的相對路徑:它是這樣工作的:
rsync -aAXv --relative --delete --exclude-from='/usr/local/maxicron/rsync/conf/exclude.txt' /home/admin/domains/server.com/public_html /backup/rsync/local
根據手冊頁
/var/cache/**
,如果記憶體文件夾包含子文件夾,兩個星號 ( ) 可能會對您有所幫助:a
*
匹配任何路徑組件,但它在斜杠處停止。用於
**
匹配任何內容,包括斜線。