![rsync 로그 삭제 파일을 만드는 방법](https://linux55.com/image/65134/rsync%20%EB%A1%9C%EA%B7%B8%20%EC%82%AD%EC%A0%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
내 웹 서버에서 로컬 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}