파일뿐만 아니라 이동, 복사 및 삭제 작업 동기화 폴더에 넣었습니다. 우분투 서버에서 백업하기

파일이 이미 대상 폴더에있는 경우 파일을 복사하지 않는 동기화 방법이 있는지 궁금합니다.

설명하겠습니다 :

사진을 찍어서 랩탑의 폴더에 넣었습니다. 우분투 서버에서 백업하기 위해 방금 실행했습니다 rsync -vrutP source des/ti/na/tion/. 그런 다음 모든 RAW를 랩톱의 하위 폴더 ( source/RAW)에 배치하고 JPG를 다른 하위 폴더 ( source/JPG) 에 배치하기로 결정했습니다 .

이제 이것을 서버에 미러링하려면 실행해야 rsync -vrutP --delete source/ des/ti/na/tion/하지만 그렇게하면 서버에서 모든 파일을 삭제 한 다음 랩톱에서 서버로 다시 복사합니다. 몇 GB의 사진이 있는데 기다릴 시간이 있고 WiFi가 아닌 이더넷 연결이 있어도 문제가되지 않습니다.

그러나 더 많은 CPU를 요구하더라도 루트 폴더 “source”의 파일을 비교하고 소스와 대상 사이의 위치 차이 만 적용하는 명령이 있다면 훨씬 더 빠르지 않습니까? 더 많은 CPU가 모든 파일을 나열하는 데 관여하지만 파일을 전송하는 데 거의 대역폭이 필요하지 않습니다. 파일이 이미 목적지에 있기 때문에 실제로 전송할 필요가 없습니다. 이벤트는 다른 장소에 있습니다. 물론 필수 기능은 델타 동기화이며 기존 (그러나 이동 된) 파일이 소스 폴더의 파일과 정확히 같은지 여부도 감지합니다.

나는 이것을하는 소프트웨어 (Syncovery, Goodsync)에 대해 알고 있지만 실제로 Linux와 Windows 에서이 작업을 수행하는 명령이 있는지 알고 싶었습니다.



답변

한편으로는 그렇습니다 … 당신은 매우 구체적인 사용 사례에 있기 때문입니다. 다른 한편으로, Linux에서 파일을 이동하거나 이름을 바꾸는 것은 동일합니다. 소스의 파일 이름이 방금 변경되었는지 확인하려면 시스템에서 해당 파일 (또는 해시)을 백업의 모든 파일과 비교해야하므로 백업의 모든 파일을 읽어 해시를 계산해야합니다. … 해시가 사이드 데이터베이스에 보관되어 있지 않으면 시간이 많이 걸립니다. 그렇게하는 스토리지 시스템은 있지만 일반 파일 시스템은 아닙니다.


답변