我有一个rsync的问题:要么显示我rsyncing(如果使用的国旗-v )或什么都没有(当不使用-v )的目录中的所有文件。
我想有rsync安静, 除了实际上必须上传到远端的文件。 有没有一个标志来激活这种报告? 我无法在文档中find它
是的,请查看-i标志。 它以隐秘的格式给出了每一个操作的报告。 请参阅手册页以了解格式的确切定义。
为了获得发送到远程主机的文件列表,可以使用以下命令:
rsync <options> -i <src> <dst> | grep '^<' | awk '{ print $2 }'
rsync与一个单一的-v实际上只打印传输的文件。 如果每次获得完整列表,那么这可能意味着基于修改时间+大小的默认rsync src / dest比较algorithm不适合您的情况。 您可以添加-c (–checksum)标志,通过校验和使rsync比较文件。 请注意,这显然会导致一些I / O开销。
稍有相关的是,如果你使用--info=flist而不是-v那么你会得到更多的文件输出(你基本上会忽略典型的-v输出的页眉和页脚)。
这是我做到的方式。 我不认为有这样做的标志,但现在可能有
rsync -v [other options] | grep -v 'uptodate'
我想到的一件事情就是使用更详细的日志格式,并弄清楚你想得到什么。
例如:
rsync -a --out-format="%b %i %f" /etc/ /tmp/qq/ |awk '{if ($1>0) {print $3}}'
这不是很健壮,它不会处理好空间的文件名。
-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 。 我假设你的主要兴趣是没有看到成千上万的未经修改的文件滚动…