![Rsync 使用文本文件排除目录不起作用](https://linux22.com/image/177645/Rsync%20%E4%BD%BF%E7%94%A8%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E6%8E%92%E9%99%A4%E7%9B%AE%E5%BD%95%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有以下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/*
但它们都不起作用,我仍然创建了缓存文件夹。也没有错误。任何想法?
答案1
答案2
我不确定为什么文本文件中声明的绝对路径不起作用。因此,我添加了另一个名为--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