목록을 제외한 Rsync 파일

목록을 제외한 Rsync 파일

크론 작업을 설정하려고 하는데 이 작업이 처음입니다. 생성된 새로운 데이터를 분석하는 것이 목적입니다. 데이터가 디렉터리에 존재합니다.

아직 분석되지 않은 최신 데이터/데이터만 동기화하고 싶습니다. 이에 대해 분석된 디렉터리 목록(제외 예정)을 생성했습니다. 특정 스키마가 있는 소스의 데이터를 대상으로 동기화하려면 다음 명령을 사용하고 있습니다.

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/"

(제외 및 포함 순서가 중요하며 첫 번째 일치 항목이 적용됩니다.)

그러나 이렇게 하면 대상 디렉터리의 소스 디렉터리 구조가 유지되며 이는 원하는 것일 수도 있고 그렇지 않을 수도 있습니다.

관련 정보