개별 파일에 대한 Rsync 쇼 진행률


21

rsync를 사용하여 꽤 큰 파일 (20Gb)을 업로드 / 다운로드하고 있습니다. --progress 옵션을 알고 있지만 제 경우에는 결과가 마지막에 표시됩니다.

내 문제는 불안정한 연결 중에 여전히 다운로드 / 업로드 중이거나 문제가 있는지 알 수 없다는 것입니다. 개별 파일의 진행률 표시 줄을 표시하는 방법이 있습니까? 기본적으로 wget과 비슷한 기능이 있습니까?

감사!


4
나는 10 년 이상 rsync를 사용해 왔으며이 질문을 한 적이 없다고 믿을 수 없습니다.
slm

답변:


17

이것은 당신이 추구하는 것일 수 있습니다.

% rsync -avvz --times --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    /usr/include/glib-2.0 my-glib-copy/

스위치는 다음과 같이 분류됩니다.

  • -avvz = 보관, 상세 x 2, 압축
  • --times = 수정 시간 유지
  • --stats = 파일 전송 통계 제공
  • --checksum = 모드 시간 및 크기가 아닌 체크섬을 기준으로 건너 뛰기
  • --human-readable = 사람이 읽을 수있는 형식의 숫자 출력
  • --acls = ACL 유지 (-p 포함)
  • --itemize-changes = 모든 업데이트에 대한 변경 요약을 출력합니다
  • --progress = 전송 중 진행률 표시
  • --out-format = '[% t] [% i] (최종 수정 : % M) (바이트 : % -10l) % -100n'
    • % t = 현재 날짜 시간
    • % i = 업데이트중인 항목의 항목 별 목록
    • % M = 파일의 마지막 수정 시간
    • % -10l = 바이트 단위의 파일 길이 (-10은 정렬 및 정밀도를위한 것임 )
    • % -100n = 파일 이름 (약식; dir에서 후행 "/") (-100은 정렬 및 정밀도를위한 것입니다)

참고 : 에 대한 매뉴얼 페이지를 참조 rsync하고 rsyncd.conf위의 스위치에 대한 자세한 내용에 대한합니다.

위의 명령은 다음과 같은 대화 내용을 생성합니다.

sending incremental file list
delta-transmission disabled for local transfer or --whole-file
[2012/12/23 21:34:46] [cd+++++++++] (Last Modified: 2010/12/19-08:13:31) (bytes: 4096      ) glib-2.0/
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 1511      ) glib-2.0/glib-object.h
       1.51K 100%    0.00kB/s    0:00:00
       1.51K 100%    0.00kB/s    0:00:00 (xfer#1, to-check=181/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 2910      ) glib-2.0/glib.h
       2.91K 100%    2.78MB/s    0:00:00
       2.91K 100%    2.78MB/s    0:00:00 (xfer#2, to-check=180/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 3613      ) glib-2.0/gmodule.h
       3.61K 100%    3.45MB/s    0:00:00
       3.61K 100%    3.45MB/s    0:00:00 (xfer#3, to-check=179/183)
...
...
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8431      ) glib-2.0/gobject/gvaluecollector.h
       8.43K 100%  141.96kB/s    0:00:00
       8.43K 100%  141.96kB/s    0:00:00 (xfer#178, to-check=1/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8507      ) glib-2.0/gobject/gvaluetypes.h
       8.51K 100%  143.23kB/s    0:00:00
       8.51K 100%  143.23kB/s    0:00:00 (xfer#179, to-check=0/183)
total: matches=0  hash_hits=0  false_alarms=0 data=1305506

rsync[2996] (sender) heap statistics:
  arena:         540672   (bytes from sbrk)
  ordblks:            3   (chunks not in use)
  smblks:             7
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        942080   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          592
  uordblks:      404784   (bytes used)
  fordblks:      135888   (bytes free)
  keepcost:      134240   (bytes in releasable chunk)

rsync[2999] (server receiver) heap statistics:
  arena:         286720   (bytes from sbrk)
  ordblks:            2   (chunks not in use)
  smblks:             8
  hblks:              3   (chunks from mmap)
  hblkhd:        667648   (bytes from mmap)
  allmem:        954368   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          672
  uordblks:      174480   (bytes used)
  fordblks:      112240   (bytes free)
  keepcost:      102352   (bytes in releasable chunk)

rsync[2998] (server generator) heap statistics:
  arena:         233472   (bytes from sbrk)
  ordblks:            4   (chunks not in use)
  smblks:             6
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        634880   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          448
  uordblks:       83152   (bytes used)
  fordblks:      150320   (bytes free)
  keepcost:      131120   (bytes in releasable chunk)

Number of files: 183
Number of files transferred: 179
Total file size: 1.31M bytes
Total transferred file size: 1.31M bytes
Literal data: 1.31M bytes
Matched data: 0 bytes
File list size: 6.30K
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 350.39K
Total bytes received: 3.43K

sent 350.39K bytes  received 3.43K bytes  707.64K bytes/sec
total size is 1.31M  speedup is 3.69

최신 rsync 버전의 진행률 표시 줄

이 SF 질문을 발견했습니다.

답변 중 하나는 최신 버전 rsync에서는 진행률 표시 줄이 지원 된다고 언급했습니다 . 다음과 같이 보입니다 :

% ./rsync -a --info=progress2 /usr .
    305,002,533  80%   65.69MB/s    0:00:01  xfr#1653, ir-chk=1593/3594)

이 진행률 표시 줄에는 여전히 전송중인 개별 파일의 상태가 표시되지 않지만 도움이 될 수있는 전체 전송의 백분율이 표시됩니다.


1
답변 해주셔서 감사합니다. 여전히 내가 찾고있는 것이 아닙니다. 실제로 필요한 것은 개별 파일을 다운로드 할 때입니다 (glib-2.0 / glib-object.h라고 말하십시오) . 파일 의 진행률 표시 줄만 표시 됩니다. glib-2.0 / glib-object.h가 20Gb라고 상상해보십시오. 여전히 다운로드 중인지, 시간이 얼마나 남았는지 어떻게 알 수 있습니까?
연어


1

데몬 모드에서 rsync를 사용하고 있습니까? rsync의 기본 동작 (Debian 6에서)은 요청한 방식입니다. 그러나 rsyncd.conf 매뉴얼 페이지에서 데몬 모드의 기본 동작은 다음과 같습니다.

전송 로깅
이 매개 변수는 ftp 데몬에서 사용하는 것과 다소 비슷한 형식으로 다운로드 및 업로드의 파일 별 로깅을 활성화합니다. 데몬은 항상 마지막에 전송을 기록하므로 전송이 중단되면 로그 파일에 언급이 없습니다.
로그 라인을 사용자 정의하려면 "log format"매개 변수를 참조하십시오.

따라서 데몬 모드에서 rsync를 사용하는 경우 "transfer logging"행을 rsyncd.conf에 추가해야합니다.


아니요, 데몬 모드가 아니고 파일 의 진행률 표시 줄이 표시되지 않고 전체 프로세스에 대한 요약 만 표시 됩니다.
Salmon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.