원격 rsync 명령을 통해 내 컴퓨터에 복사된 파일에 대한 정보를 얻으려면 어떻게 해야 합니까?

원격 rsync 명령을 통해 내 컴퓨터에 복사된 파일에 대한 정보를 얻으려면 어떻게 해야 합니까?

컴퓨터에서 디렉터리를 동기화하고 있습니다.두번째처리. rsync명령이 머신에서 실행됩니다.두번째.

기계에, 컴퓨터에 접속하지 않고도 이 프로세스에 대해 어떤 종류의 정보를 얻을 수 있습니까 rsync(진행 상황/다운로드된 데이터 양 등)ssh두번째?

답변1

예를 들어 원격 시스템이 기록할 옵션을 지정할 수 있습니다.

--remote-option=--log-file=/path/to/log/rsync.log

다음은 소규모 rsync 실행의 예입니다.

2015/10/21 10:59:43 [10785] receiving file list
2015/10/21 10:59:43 [10785] created directory stack2
2015/10/21 10:59:43 [10785] cd+++++++++ ./
2015/10/21 10:59:43 [10785] >f+++++++++ Filexxx
2015/10/21 10:59:43 [10785] >f+++++++++ logfile
2015/10/21 10:59:43 [10785] >f+++++++++ logfile.sh
2015/10/21 10:59:43 [10785] cd+++++++++ dir1/
2015/10/21 10:59:43 [10785] >f+++++++++ dir1/FileA
2015/10/21 10:59:43 [10785] >f+++++++++ dir1/FileB
2015/10/21 10:59:43 [10785] >f+++++++++ dir1/FileC
2015/10/21 10:59:43 [10785] >f+++++++++ dir1/filec
2015/10/21 10:59:43 [10785] cd+++++++++ dir2/
2015/10/21 10:59:43 [10785] >f+++++++++ dir2/filea
2015/10/21 10:59:43 [10785] >f+++++++++ dir2/fileb
2015/10/21 10:59:43 [10785] sent 240 bytes  received 1,703 bytes  total size 1,051

답변2

충분한 권한이 있다고 가정하면 strace수신 rsync프로세스를 사용하거나 lsof어떤 파일이 열려 있는지 확인하는 데 사용할 수 있습니다.

예를 들어 를 사용하여 rsync 프로세스 pid를 찾으십시오 pgrep rsync. 그러나 두 개가 있을 수 있으므로 하위 프로세스를 선택하십시오. 그런 다음 예를 들어 사용하십시오.

strace -p 4484 -e rename

여기서 4484는 발견된 pid입니다. 임시 이름에서 이름이 바뀌면서 생성되는 모든 새 파일이 표시됩니다. 다음을 사용하여 출력을 약간 단순화할 수 있습니다.

pid=$(pgrep -n rsync)
strace -p "$pid" -e rename 2>&1 | sed 's/.*", //;s/) = 0//'

또는 예를 들어 다음을 사용하십시오.

 watch ls -l /proc/4484/fd/1

이는 임시 파일을 작성하는 데 사용되는 파일 설명자인 것 같습니다. 최소한 해당 파일이 들어 있는 디렉토리는 표시됩니다.

관련 정보