rsync를 사용하여 대용량 디렉터리 이동

rsync를 사용하여 대용량 디렉터리 이동

백업을 위해 SAN(오프보드)에 마운트된 Linux o/sa 디렉토리를 외부 저장소로 이동할 계획입니다. 디렉토리 크기는 14TB.

rsync를 사용하여 파일을 안팎으로 이동한 경험이 있지만 지금처럼 큰 크기의 디렉터리/파일을 사용하여 이 작업을 수행한 적이 없습니다.

디렉토리는 연/월/일/시간 계층 구조로 구성되며 분석을 위한 원시 로그를 지원합니다.

문제

위에서 말씀드린 대로 리소스 제한으로 인해 14TB 전체를 외부/백업 저장 공간으로 이동할 수 없습니다. 현재 보유하고 있는 백업 공간은 최대 8TB입니다. 따라서 rsync에 언급된 크기, 즉 TB에만 파일을 복사하도록 지시할 수 있는 명령이나 스위치/매개 변수가 있습니까?

메모 나는 파일 특성에 대해 덜 신경 쓰지 않습니다. 특정 크기를 넘어서면 데이터를 이동하고 싶지 않습니다.

답변1

제한을 제공하여 특정 양의 바이트를 복사한 경우 rsync를 중지할 수 없습니다. 정상적으로 실행하시면 됩니다

rsync -a /src/ /dest 

/dest가 가득 차면 오류와 함께 중지됩니다.

 rsync: write failed on "...": No space left on device (28)

스크립트로 뭔가를 할 수 있어요

find /src -printf "%p %s\n" >filelist_size

그런 다음 awk와 같은 것을 사용하여 파일 크기의 합이 특정 임계값보다 작은 경우 filelist_size파일 이름을 읽고 인쇄합니다 .filelist

그런 다음 인수를 rsync에 사용할 수 있습니다 files-from=filelist.

파이썬으로 작성하는 것이 더 쉬울 수도 있습니다.

관련 정보