我偶尔会在rsnapshot日志中获取此消息,并在/var/log/messages相同的/var/log/messages 。 不幸的是,除了在/etc/rsnapshot.conf loglevel 5之外,没有其他偏离正常输出的/etc/rsnapshot.conf ,除了最后的汇总警告之外:
[24/Feb/2014:11:00:02] /usr/bin/rsnapshot daily: started [24/Feb/2014:11:00:02] Setting locale to POSIX "C" [24/Feb/2014:11:00:02] echo 9045 > /.../temp/rsnapshot.pid [24/Feb/2014:11:00:02] /bin/rm -rf /mnt/backup/.snapshots/daily.5/ [24/Feb/2014:11:00:48] mv /mnt/backup/.snapshots/daily.4/ /mnt/backup/.snapshots/daily.5/ [24/Feb/2014:11:00:48] mv /mnt/backup/.snapshots/daily.3/ /mnt/backup/.snapshots/daily.4/ [24/Feb/2014:11:00:48] mv /mnt/backup/.snapshots/daily.2/ /mnt/backup/.snapshots/daily.3/ [24/Feb/2014:11:00:48] mv /mnt/backup/.snapshots/daily.1/ /mnt/backup/.snapshots/daily.2/ [24/Feb/2014:11:00:48] mv /mnt/backup/.snapshots/daily.0/ /mnt/backup/.snapshots/daily.1/ [24/Feb/2014:11:00:48] mkdir -m 0755 -p /mnt/backup/.snapshots/daily.0/ [24/Feb/2014:11:00:48] /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/srv/recycle/*} --exclude=mnt/backup/.snapshots --link-dest=/mnt/backup/.snapshots/daily.1/.../ /. /mnt/backup/.snapshots/daily.0/.../ [24/Feb/2014:11:02:13] Some files and/or directories in / vanished during rsync operation [24/Feb/2014:11:02:13] touch /mnt/backup/.snapshots/daily.0/ [24/Feb/2014:11:02:13] No directory to delete: /mnt/backup/.snapshots/_delete.9045 [24/Feb/2014:11:02:13] rm -f /home/kev/scheduled/temp/rsnapshot.pid [24/Feb/2014:11:02:13] WARNING: /usr/bin/rsnapshot daily: completed, but with some warnings
会是什么呢? 为什么不报告哪些文件即使在最高的日志级别上也没有消失? (或者我甚至没有正确的日志级别?因为这看起来不是很冗长。)
rsync的最新源代码分发包含这个名为rsync-no-vanished的wrapperscript:
#!/bin/bash IGNOREEXIT=24 IGNOREOUT='^(file has vanished: |rsync warning: some files vanished before they could be transferred)' set -o pipefail rsync "${@}" 2>&1 | (egrep -v "$IGNOREOUT" || true) ret=$? if [[ $ret == $IGNOREEXIT ]] then ret=0 fi exit $ret
在rsync操作期间,一些文件和/或目录在/中消失
这就是这个意思。 RSync使用“快速检查”algorithm(默认情况下)创build自上次运行以来已更改的所有文件的列表,该algorithm查找已更改大小或上次修改时间的文件( rsync(1) ) 。 此警告报告说,在rsync尝试将文件或目录复制到目标时,文件列表中的文件或目录不再存在。
已更改的文件很可能是临时文件,但如果要validation此文件,则可以configurationrsnapshot以传递rysnc --list-only列表选项来构build文件列表,等待一段适当的时间,再次运行并比较两个看看哪些文件已经“消失”了。