Rsync dry-run 统计数据 - 执行“cp”和“rsync”命令后的不同统计数据

Rsync dry-run 统计数据 - 执行“cp”和“rsync”命令后的不同统计数据

为了生成一些随机文件,我创建了一个脚本,如下所示:

#!/bin/bash

for dir in `seq 1 10`
do
        mkdir /root/mandar/RsyncSrc/$dir
        cd /root/mandar/RsyncSrc/$dir
        for file in `seq 11 20`
        do
                touch /root/mandar/RsyncSrc/$dir/$file
        done
done

因此,目录的内容/root/mandar/RsyncSrc如下所示:

1  10  2  3  4  5  6  7  8  9  mkfiles.sh

情况1(带cp命令):

我执行以下命令以/root/mandar/RsyncSrc/root/mandar/RsyncDst目录同步:

cp -R /root/mandar/RsyncSrc/* /root/mandar/RsyncDst/

目录内容/root/mandar/RsyncDst

1  10  2  3  4  5  6  7  8  9  mkfiles.sh

现在,我运行rsync dry-run以获取受影响文件的列表,如下所示:

rsync -avzm --stats --safe-links --dry-run --ignore-existing --human-readable /root/mandar/RsyncSrc/*  /root/mandar/RsyncDst/ > test.log

文件内容test.log

building file list ... done
1/
10/
2/
3/
4/
5/
6/
7/
8/
9/

Number of files: 112
Number of files transferred: 0
Total file size: 234 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 926
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 963
Total bytes received: 42

sent 963 bytes  received 42 bytes  2.01K bytes/sec
total size is 234  speedup is 0.23 (DRY RUN)

情况2(带rsync命令):

我删除了所有内容/root/mandar/RsyncDst并执行以下命令来同步数据:

rsync -avzm --stats --safe-links --ignore-existing --human-readable /root/mandar/RsyncSrc/*  /root/mandar/RsyncDst/

然后重新运行dry-run如下:

rsync -avzm --stats --safe-links --dry-run --ignore-existing --human-readable /root/mandar/RsyncSrc/*  /root/mandar/RsyncDst/ > test.log

这次的内容test.log是:

building file list ... done

Number of files: 112
Number of files transferred: 0
Total file size: 234 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 926
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 933
Total bytes received: 12

sent 933 bytes  received 12 bytes  1.89K bytes/sec
total size is 234  speedup is 0.25 (DRY RUN)
  1. rsync在情况 2 的情况下,为什么日志文件中不显示任何文件/目录?
  2. 如果我需要在日志中显示文件列表rsync(情况 2),我该怎么办?

答案1

-a这是因为您在执行复制时使用了该选项rsync,并且没有使用 -a 选项cp。这会导致复制文件上的时间戳cp不被保留。

PS 给 rsync 附加-v选项会导致附加输出。虽然我使用的是 rsync 版本 3.1.0 协议版本 31,它的输出报告略有不同,但它的结果与你的相同。当我在初始cp副本上使用 -a 选项时,rsync 在我的 rsyncDstCp 和 rsyncDstRsync 目录上输出相同的内容。

相关内容