서버를 새로 구축하거나 데이터를 다른 스토리지로 복사할 때, 정상적으로 복사되었는지 확인하는 과정이 중요합니다. 단순히 cp 명령어로 복사했다고 해서 모든 파일이 정상적으로 이동되었다고 단정할 수 없기 때문입니다. 이번 글에서는 리눅스에서 파일이 정확하게 복사되었는지 확인하는 다양한 방법을 소개합니다.
1. 파일 개수 및 용량 체크 (기본 방법)
가장 간단한 방법은 복사 전후의 파일 개수와 용량을 비교하는 것입니다.
파일 개수 확인
find /source/path -type f | wc -l
find /destination/path -type f | wc -l
✅ 두 값이 같으면 정상적으로 복사된 것입니다.
파일 용량 확인
du -s /source/path
du -s /destination/path
✅ 원본과 대상 경로의 용량이 동일하면 정상적으로 복사된 것입니다.
하지만, 이 방법은 단순 용량 비교이므로 일부 파일이 손상되었거나 빠진 경우를 정확히 감지하지 못할 수 있습니다.
2. rsync를 활용한 검증
rsync는 파일 동기화뿐만 아니라 데이터 검증에도 유용하게 사용할 수 있습니다.
rsync -an --stats /source/path/ /destination/path/
- -a : 원본 속성을 유지하면서 복사
- -n : 실제로 동작하지 않고 시뮬레이션(테스트 모드)
- --stats : 파일 개수 및 용량 통계를 출력
✅ 출력된 파일 개수와 크기가 일치하면 정상적으로 복사된 것입니다.
3. 해시값 비교 (md5sum 또는 sha256sum)
파일 내용이 변경되지 않았는지 검증하려면 해시값을 비교하는 것이 확실한 방법입니다.
find /source/path -type f -exec md5sum {} + | sort > source.md5
find /destination/path -type f -exec md5sum {} + | sort > destination.md5
diff source.md5 destination.md5
✅ diff 명령어 실행 후 출력이 없으면 모든 파일이 정확히 복사된 것입니다.
혹은 sha256sum을 사용할 수도 있습니다.
find /source/path -type f -exec sha256sum {} + | sort > source.sha256
find /destination/path -type f -exec sha256sum {} + | sort > destination.sha256
diff source.sha256 destination.sha256
✅ 동일한 방식으로 파일 무결성을 검증할 수 있습니다.
4. diff를 활용한 파일 리스트 비교
파일 개수가 같더라도 일부 파일이 누락되었을 가능성이 있기 때문에, 파일 목록을 비교하는 방법도 유용합니다.
find /source/path -type f | sort > source_files.txt
find /destination/path -type f | sort > destination_files.txt
diff source_files.txt destination_files.txt
✅ 출력이 없으면 파일이 정상적으로 복사된 것입니다.
마무리
리눅스에서 파일을 복사한 후 데이터가 정상적으로 이동되었는지 확인하는 것은 매우 중요합니다. 단순한 파일 개수 및 용량 체크뿐만 아니라 rsync, 해시값 비교, diff를 활용한 리스트 비교 등 다양한 방법을 사용할 수 있습니다.
📌 추천 조합:
- 파일 개수 및 용량 체크 (빠르게 확인)
- rsync 검증 (간단한 무결성 확인)
- 해시값 비교 (정확한 데이터 검증)
위 방법을 활용하여 파일 복사가 정상적으로 완료되었는지 꼭 확인하세요! 😊
ChatGPT, 블록체인, 자바, 맥북, 인터넷, 컴퓨터 정보를 공유합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!