我正在使用 rsnapshot(使用 rsync)将文件从我的网络服务器备份到本地 Linux 盒子 (Synology)
正如预期的那样,在 Web 服务器上删除的文件也会在 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}