매우 큰 디렉토리 (여기에서 테라 바이트로 표시)를 복사하고 진행 상황을 모니터링하고 싶습니다.
나는 pv
이것이 좋은 유틸리티라는 것을 알았지 만 디렉토리를 재귀 적으로 복사하는 데 어떻게 사용할 수 있습니까? ( pv src > dst
디렉토리이기 때문에 작동하지 않습니다)
PS : pv
Mac X 포트에서 설치 한 OS X Mountain Lion에서 실행
답변
사용하다 rsync --progress [SRC] [DST]
man rsync
매우 유용한 옵션이 많으므로 페이지를 확인하십시오 . -a
아카이브는 좋은 시작이지만 정확한 요구 사항에 따라 다릅니다.
파이프를 통한 복사는 특히 파일 기반 인 경우 복사 프로세스를 불필요하게 느리게합니다.
답변
당신은 사용할 수 있습니다 tar
또는 pax
또는 cpio
:
mkdir -p dst &&
(cd src && tar cf - .) | pv -trb | (cd dst && tar xpf -)
답변
타르.
tar -cf - /var/log/ | pv | tar -C . -x
예:
# tar -cf - /var/log/ | pv | tar -C . -x
tar: Removing leading `/' from member names
58MB 0:00:05 [ 2.2MB/s] [ <=>
답변
다음은 진행 정보가있는 디렉토리를 복사하는 명령입니다.
작은 파일이 많은 경우 :
cp -av sourcedir targetdir | pv -l -s filecount > logfile
복사 된 파일 수에 따라 진행률이보고됩니다.
/dev/null
필요하지 않은 경우으로 리디렉션 할 수 있습니다 logfile
.
다음 명령을 사용하여 얻으십시오 filecount
.
find sourcedir | wc -l
큰 파일이 거의없는 경우 :
tar c sourcedir | pv -s size | tar x -C targetdir
복사 된 바이트를 기준으로 진행률을보고합니다.
targetdir
존재해야합니다.
다음 명령을 사용하여 얻으십시오 size
.
du -sh sourcedir
rsync를 사용하려는 경우 :
rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile
얻기 filecount
위의 그림과 같이.
동일한 시스템에서 복사하는 경우와 rsync -a
거의 동일합니다 cp -a
. rsync의 장점은 네트워크를 통해 복사하거나 이전 복사본을 업데이트 (또는 비교)하는 경우입니다.
자세한 내용은 여기를 참조하십시오.
답변
du -b /directory/
일반 복사 명령이 진행되는 동안 소스와 대상 모두에 대해 작업을 수행하고 둘을 비교할 수 있습니다. 이것은 마찬가지로 효과적이며 파이프를 통해 복사 프로세스를 진행하여 속도를 늦추지 않습니다.
답변
find source-dir -print0 | xargs -0 -I % pv % > dest-dir/%