2009-06-03 4 views
17

rsync가 최근에 변경된 파일에서만 작동하도록 시간 범위를 지정할 수 있습니까?rsync를 사용하여 최근 기간 내에 변경된 파일을 백업하는 방법은 무엇입니까?

SSH를 통해 최근에 추가 된 파일을 백업하는 스크립트를 작성 중이며 rsync는 효율적인 솔루션처럼 보입니다. 내 문제는 내 소스 디렉토리에 백업에 관심이없는 오래된 파일의 거대한 백 로그가 포함되어 있다는 것입니다.

지금까지 내가 만난 유일한 해결책은 - 파일 - 파일을 생성하기 위해 ctime을 사용하여 찾기를 수행하는 것입니다. 이 작업은 가능하지만 --files-from을 지원하지 않는 rsync 버전이있는 일부 기존 설치를 처리해야합니다. 같은 방식으로 --include-from 패턴을 생성하는 것을 고려하고 있지만 좀 더 우아한 것을 찾고 싶습니다.

+0

다음에 rsync를 처음 호출 한 후에는 새 파일이나 수정 된 파일 만 전송합니다. 그것이 rsync의 목적입니다. – lothar

+0

또 다른 옵션은 디렉토리 레이아웃을 재구성하여 백업하지 않으려는 파일이 다른 경로에 있으므로 rsync의 무시 목록에 해당 경로를 넣을 수 있습니다. – lothar

+0

rsync의'-t' 옵션의 사용을 제안하려고했으나 정확히 묻지는 않습니다. – Hasturkun

답변

26
당신은 rsync에 대한 인수에 쉘 명령을 지정할 수 있습니다처럼 보이는

그래서 성공적으로 rsync를 보이는 한 파일을 제한 할 수 있었다에서 사용하여

(Remote rsync executes arbitrary shell commands 참조)

rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir 

이를 마지막 날에 변경된 파일 (-ctime -1)을 찾은 다음 해당 파일을 local_dir로 rsync합니다.

이 기능이 의도적으로 설계된 것인지는 확실하지 않지만 아직 문서를 파고 있습니다.

+0

방금 ​​내가 가져온 데이터 가져 오기 스크립트에 유용하게 사용 된 선을 삭제하고 싶었습니다. 고맙습니다! – Matthew

+1

조심해. 일치하는 파일이 많으면 임베디드 검색 결과를 쉘의 명령 행 길이 제한으로 실행할 수 있습니다. 나에게 발생했던 일. – GaryO

+0

이것은 디렉토리 구조를 유지하지 않을 것입니다. – carlosvini

1

임시 디렉토리를 만들거나 파일을 심볼릭 링크하거나 하드 링크하여 파일을 동기화하는 방법은 어떻습니까?

2

전체 디렉토리를 한 번만 백업하고 rsync와 rdiff 및 해당 사촌이 제공하는 증분 백업을 활용하면 디스크 공간이 낭비되지 않습니다. 끊임없이 변함이 없다.

모든 것을 백업하는 것이 더 간단하며 오류 위험이 훨씬 적습니다. 일부 파일을 선택적으로 백업하려고 시도하고 다른 것을 백업하지 않는 것은 필요한 것을 백업하지 않고 파일을 깨닫지 않고 백업 한 다음 중요한 파일을 복원 할 수 없을 때 레코딩하는 방법입니다.

그렇지 않으면 백업 스크립트에서 "의사 결정"이 적어 지도록 원본 디렉터리를 재구성해야합니다.

+0

나는 일반적으로 오류의 위험에 대해 동의하지만 이전 파일 (결코 변경되지 않을 로그 및 기타 레코드)에 대한 어떠한 사용도 결코하지 않을 것입니다. 열을 가졌지 만 몇 기가 바이트의 불필요한 부풀리기를 다운로드하고 정기적으로 다시 처리해야한다는 생각 때문에 처음에는이 질문을 던졌습니다. 재구성은 아마도 해결책 일 것입니다. 기존 구조는 변경할 수 없지만 Hasturkun이 제안한대로 임시 디렉토리를 설정할 수 있습니다. – Ken

+0

나를 위해 원격에서 로컬로 전송하고 파일을 처리 한 다음 이전 공간 (mtime +30)을 로컬에서 삭제하여 공간을 절약하려고합니다. 순진한 rsync는 다음 번에 오래된 것들을 다시 다운로드합니다. – GaryO

1

rsync를 삭제하고 rdiff-backup을 살펴볼 것을 제안 할 수 있습니까?

+0

감사합니다. 이전에 살펴 봤지만 CIFS 호환성 문제로 인해 저를 배제했습니다. (http://rdiff-backup.nongnu.org/FAQ.html#cifs) – Ken

관련 문제