rsync
하나의 Synology 서버에서 다른 서버로의 대규모 폴더에서 체크섬 비교 작업을 실행하려고 합니다.
rsync
내가 얻고 싶은 것은 현재 폴더와 폴더가 마지막 으로 실행된 방식, 즉 제거, 추가 또는 변경된 파일 간의 차이점을 보여주는 출력입니다 .
하지만 내가 얻은 출력은 너무 큽니다. 폴더의 모든 파일이 포함된 것 같습니다! (이 파일은 파일 이름만 포함된 14MB 파일입니다. rsync를 실행하는 폴더의 실제 내용은 6TB입니다.)
이 rsync
작업은 다음과 같습니다.
/usr/bin/rsync -ac --log-file="/volume1/NAS/backup_logs/logs/log.$(date +%Y%m%d%H%m%S).txt" --delete --times --sparse -e "ssh -p {port number}" /volume1/source_folder [email protected]:/volume1/destination_folder
을 실행한 후 rsync
체크섬 파일을 생성합니다.
find /volume1/source_folder -type f -print0 | xargs -0 md5sum > /volume1/NAS/checksums/checksums_backup.$(date +%Y%m%d).txt
그런 다음 체크섬 파일을 이전 파일과 비교합니다(처음에는 작동하지 않음).
grep -Fxvf /volume1/NAS/checksums/checksums_backup.$(date +%Y%m%d).txt /volume1/NAS/checksums/yesterdays_checksums.txt > /volume1/homes/username/checksums/updated_files.txt
그런 다음 체크섬을 이전 체크섬에 복사했습니다.
cp /volume1/NAS/checksums/checksums_backup.$(date +%Y%m%d).txt /volume1/NAS/checksums/yesterdays_checksums.txt
하지만 제가 말했듯이 update_files.txt는 세 번째 실행에서도 결국 너무 커졌습니다. 내가 뭘 잘못했나요?
이러한 폴더를 비교하고 차등 출력을 생성하는 또 다른 더 쉬운 방법이 있다면 제안해 드리겠습니다.