rsync를 사용하여 양방향 또는 양방향 동기화를 설정하려고 합니다. 제 경우에는 B에서 A로 동기화할 때만 파일을 삭제하면 됩니다. 그래서 저는 rsync를 다음과 같이 두 번 실행할 생각입니다.
rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/
이 솔루션의 문제점은 rsync(B->A)를 실행할 때(즉, rsync(AB)를 실행한 직후) 동기화 간에 생성된 모든 새 파일도 삭제된다는 것입니다.
타임스탬프를 조건으로 지정하고 해당 날짜/시간 이전에 생성된 파일만 삭제하는 방법이 있습니까?
고쳐 쓰다:
통합 솔루션이 있다는 것을 알고 있지만 통합 문제는 양쪽 끝에 모두 설치해야 합니다. 원격 서버와 동기화 중인데 원격 측에 unison을 설치할 수 없습니다.
답변1
rsync
당신이 겪고 있는 바로 그 이유 때문에 작업에 잘못된 도구입니다. 대신 다음을 사용해 보세요.unison
:
unison A/ B/
이 명령을 처음 실행하면 및 에 있는 파일만 식별됩니다 . A
또한 B
두 위치에 있는 콘텐츠를 표시하고 덮어쓸 파일을 식별하도록 요청합니다.
다음에 이 명령을 실행하면 변경 사항이 A
및 에 복사 B
되고 두 위치 모두에서 변경된 모든 파일이 수동으로 해결되도록 B
표시됩니다 .A
mkdir A B
date > A/date
who > B/who
unison A/ B/
# Lots of output from unison, showing synchronisation
ls A
date who
ls B
date who
date > A/date
unison A/ B/
# Lots of output from unison, showing synchronisation
unison
가정을 정의하여 프로세스를 자동화함으로써 동기화 중에 묻는 질문 수를 줄이는 데 사용할 수 있는 유용한 플래그가 많이 있습니다 .
답변2
osync를 사용해 볼 수 있습니다. 이는 이 작업을 위해 정확하게 설계되었습니다. 나는 작업을 수행하기 위해 복잡한 일련의 rsync 명령을 설정했지만 지금은 osync를 사용합니다.
https://github.com/deajan/osync
내부적으로 rsync를 사용하므로 rsync를 사용할 수 있는 모든 상황에 적합해야 합니다.
답변3
당신에게 정말로 필요한 것은클론. Rclone은 클라우드 저장소(box, dropbox, nextcloud, ftp 등) 및 로컬 저장소에 대한 rsync입니다.