Rsync 文件,不包括列表

Rsync 文件,不包括列表

我正在努力设置 cron 作业,而且我对此很陌生。目的是分析生成的新数据。数据存在于目录中。

我只想同步最新的数据/尚未分析的数据,我为此创建了已分析的目录列表(要排除)。我使用以下命令将数据从具有特定模式的源同步到目标。

rsync -av --exclude-from=/home/list1 /datasets001/*/Pr*/*RNA* $TMPDIR/raw_fastq

问题是上述命令的行为与以下命令相同,并且不排除 list1 中提到的任何数据。

rsync -av  /datasets001/*/Pr*/*RNA* $TMPDIR/raw_fastq

list1 的几行如下:

datasets001/demux_182_160415_D00163_0376_BHCYVHBCXX_PM155__uid1849/Project_PM155/Sample_PM155_ORG9_1_Case_RNASeq
datasets001/demux_182_160415_D00163_0376_BHCYVHBCXX_PM601__uid1848/Project_PM601/Sample_PM601_PDX10_1_Case_RNASeq

此外,欢迎任何其他同步新数据并分析它(基于日期)的建议。

答案1

有两个问题;

首先,您已将排除路径定义为相对路径而不是绝对路径;尝试添加前导“/”。

第二个是您已明确提供源路径,(我认为)这将覆盖排除。

如果您从排除列表中删除路径,它可能会按照您想要的方式工作,即只有一个排除文件,例如:

Sample_PM155_ORG9_1_Case_RNASeq
Sample_PM601_PDX10_1_Case_RNASeq

或者你可以使用类似的东西:

rsync -av --exclude-from=/home/list1 \
          --include='/' --include='/*' --include='/*/Pr*' --include='/*/Pr*/*RNA*' \
          --exclude='*' \
          /datasets001/ "$TMPDIR/raw_fastq/"

(请注意,排除和包含的顺序很重要,第一个匹配适用)

然而,这将保留目标目录中的源目录结构,这可能是也可能不是您想要的。

相关内容