我可以让 rsync 仅输出摘要吗?

我可以让 rsync 仅输出摘要吗?

我使用 rsync 备份一个目录,这个目录很大,包含很多子目录和文件,所以我不想看到“增量文件列表”。我只想知道最后的摘要。如果我使用参数-q,则什么都不会输出。我可以让 rsync 只输出摘要吗?

答案1

使用以下内容:

rsync -vr src/ dest/ | sed '0,/^$/d'

说明:rsync使用标志以详细模式运行-v。它输出详细的文件列表、空行和摘要。现在sed用于利用摘要由空行分隔的事实。直到第一个空行的所有内容都不会打印到标准输出。^$匹配空行并d阻止其输出。

答案2

得益于Wayne Davison 的提示,我使用以下--stats选项进行备份:

rsync -a --stats src/ dest/

最后有一个很好的小总结,例如

Number of files: 6765
Number of files transferred: 0
Total file size: 709674 bytes
Total transferred file size: 0 bytes
(10 more lines)

答案3

尝试这个命令

rsync -a --info=progress2 --stats source destination

输出

32,342,135  10%  134.45kB/s    0:03:54 (xfr#386, to-chk=1059/7326)

答案4

您可以运行试运行,计数文件,然后使用 pv 命令运行它:

dry_run_output=$(rsync -avn --stats source/ destination/)
file_count=$(echo "$dry_run_output" | awk '/to-chk/ || /Number of created files/ {gsub(",", "", $5); print $5}')
rsync -avz --stats source/ destination/ | awk '/to-chk/ || /Number of created files/ {print}' | pv -l -s "$file_count"

相关内容