rsync 로그 삭제 파일을 만드는 방법

rsync 로그 삭제 파일을 만드는 방법

내 웹 서버에서 로컬 Linux 상자(Synology)로 파일을 백업하기 위해 rsnapshot(rsync 사용)을 사용하고 있습니다.

예상대로 웹 서버에서 삭제된 파일은 Linux 시스템에서도 삭제됩니다. 문제는 삭제된 파일에 대한 정보가 기록되지 않는다는 것입니다. rsync 로그에 삭제된 파일 목록을 어떻게 추가합니까?

다음은 rsnapshot.conf의 rsync 매개변수입니다:

rsync_short_args -av
rsync_long_args --out-format="%t %f %b" --delete --delete-excluded \
    --log-file=/volume1/web/logs/rsn_sync.log --copy-links

따라서 다음 명령이 생성됩니다.

/usr/syno/bin/rsync -av --out-format="%t %i %f %b" --delete --delete-excluded \

    --log-file=/volume1/web/logs/rsn_sync.log --copy-links \
    --exclude-from=/volume1/web/BK/exclude.txt --rsh=/usr/syno/bin/ssh \
    --link-dest=/volume1/web/BK2/weekly.1/slavikF/ \
    [email protected]:/var/www/ /volume1/web/BK2/weekly.0/slavikF/

답변1

-i, --itemize-changes      output a change-summary for all updates
Also:  -v, --verbose              increase verbosity

답변2

이것은 오래된 질문이지만 대답은 다음과 같습니다.

단일 시스템에서 사용되는 경우 rsync는 두 개의 프로세스를 시작합니다. 하나는 "로컬"로 간주되는 프로세스(소스 디렉터리에서 데이터 전송)이고 다른 하나는 "원격"(데이터 수신)으로 간주됩니다.

삭제는 로컬 측이 아닌 원격 측에서 처리됩니다.

기본 로그는 "로컬" 프로세스에 의해 생성되며 삭제된 파일을 표시하지 않습니다.

$ rsync -a --delete-during --log-file=~/rsynclog.log src/ dest
$ cat ~/rsynclog.log
2021/05/05 23:51:09 [4244] building file list
2021/05/05 23:51:09 [4244] .d..t...... {directory}

그러나 "원격" 측에서 로그를 생성하도록 할 수 있습니다. 그러다가 삭제됐어요!

$ rsync -a --delete-during --remote-option=--log-file=~/rsynclog.log src/ dest
$ cat ~/rsynclog.log
2021/05/05 23:39:18 [31138] receiving file list
2021/05/05 23:39:18 [31138] *deleting   {directory}/{filename}
2021/05/05 23:39:18 [31138] .d..t...... {directory}

답변3

이것문서--log-file-format기본으로 사용한다고 하네요 .%i %n%L

여기에서 사용할 수 있습니다 %o. 이것문서설명하다:

%o 작업(예: "send", "recv" 또는 "del") (후자는 후행 기간을 포함합니다)

따라서 기본적으로 찾고 있는 것은 다음과 같습니다.

--log-file-format='%i %n%L %o' 

관련 정보