rsync를 사용하여 복사된 파일 수를 얻는 방법

rsync를 사용하여 복사된 파일 수를 얻는 방법

나는 Raid에서 2개의 백업 드라이브로 복사하기 위해 스크립트(OSX)에서 rsync를 사용하고 있는데, 스크립트를 실행할 때 이런 일이 발생하며 아마도 하루에 10-20번 복사할 것입니다. 복사된 파일 수를 알려주기 위해 rsync 로그 파일이나 해당 항목을 구문 분석하는 방법을 찾으려고 노력 중입니다. 이것은 내 rsync 명령입니다.

rsync -auvh --delete --progress "$SourceTx" "$Dest1Tx" --log file="$SourceRoot/""CopyLog1.txt"

복사된 파일 수를 내보내기 위해 로그 파일을 grep하려고 (작업하지 않고) 시도했습니다.

cd "$SourceRoot/"
howMany=$(cat CopyLog1.txt | grep -c .mov)
osascript -e 'display notification "Transcode Copy Complete, '$howMany' files transfered, Log Files Created" with title "Transcode Copy Script"'

답변1

전송된 파일 수를 얻으려면 이 --stats옵션을 사용하십시오. 예를 들어:

$ rsync -auvh --stats --delete --log-file=1.log --progress "$SourceTx" "$Dest1Tx" | grep 'files transferred'
Number of regular files transferred: 21

쉘 변수로 전송된 파일 수를 캡처하려면 다음을 수행하십시오.

nfiles=$(rsync -auvh --stats --delete --log-file=1.log --progress "$SourceTx" "$Dest1Tx" | awk '/files transferred/{print $NF}')

위의 내용은 전송된 파일 수만 표시하도록 필터링되었습니다. 사용 가능한 추가 정보를 설명하려면 다음을 수행하십시오 --stats.

$ rsync -auh --stats --delete  srcdir destdir

Number of files: 14 (reg: 10, dir: 4)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 0
Total file size: 209 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 342
Total bytes received: 27

sent 342 bytes  received 27 bytes  738.00 bytes/sec
total size is 209  speedup is 0.57

관련 정보