Answers:
是的,请检查-i
标志。它以加密格式给出每个操作的报告。有关格式的确切定义,请参见手册页。
为了获取发送到远程主机的文件列表,可以使用以下命令:
rsync <options> -i <src> <dst> | grep '^<' | awk '{ print $2 }'
<fcstpoguax filename
,其中不同的标志显示了为什么需要更新它们)。如果报告所有文件,则说明您的测试或环境可能存在问题。
<f..T......
。根据手册,这与时间戳有关。
grep -E '^[^.]|^$'
还会使统计信息(或警告,错误等)线通过,仅删除以点开头的无聊的线...
rsync与单个-v
实际上只打印传输的文件。如果您每次都获取完整列表,则可能意味着基于修改时间+大小的默认rsync src / dest比较算法不适合您的情况。您可以添加-c
(--checksum
)标志,使rsync通过校验和比较文件。请注意,这显然会产生一些I / O开销。
稍微相关的一个事实是,如果您使用--info=flist
而不是,-v
则将获得更修剪的文件输出(基本上可以跳过典型-v
输出的页眉和页脚)。
--info=flist
仅在rsync> = 3.1中可用,并非在所有地方都可用。例如,macOS随
-i
选项对于这些图标化(或:隐秘)的更改标志。您的输出将如下所示:
*deleting DSC00012 (copy).JPG
.d..tp..... ./
.f...p..... DSC00011.JPG
>f+++++++++ DSC00012 (copy2).JPG
>f.stp..... DSC00012.JPG
.f...p..... DSC00014.JPG
Number of files: 5 (reg: 4, dir: 1)
Number of created files: 1 (reg: 1)
... more statistic stuff
sent 636.01K bytes received 4.63K bytes 1.28M bytes/sec
total size is 2.84M speedup is 4.44
让所有其他行(为了清晰起见,也为空白行)通过:
rsync -arz -i --stats -h ... /mnt/FooDrive/ /mnt/backup | grep -E '^[^.]|^$'
我们在这里:-) —医生命令的是:
*deleting DSC00012 (copy2).JPG
>f.stp..... DSC00011.JPG
>f+++++++++ DSC00012 (copy).JPG
Number of files: 5 (reg: 4, dir: 1)
Number of created files: 1 (reg: 1)
...
避免点而不是寻找不仅 >
可以让统计信息通过,而且还可以传递潜在的错误,警告等信息。
最终将统计数据作为个人喜好。-h --stats
如果您不喜欢这些,请不要使用。我认为您的主要兴趣是看不到成百上千的未更改文件滚动...
我不认为有这样做的标志,但现在可能会有。这是我的方法:
rsync -vv [other options] | grep -v 'uptodate'
uptodate
到报告中,因此无法将其过滤掉。