如何可靠地计算 rdiff-backup 目录中的增量数?

如何可靠地计算 rdiff-backup 目录中的增量数?

rdiff-backup实用程序用于创建目录树的增量镜像。我想找出当前保存的增量数量,并将此数字保存到变量值中。我正在 bash 脚本中执行此操作,并且仍然需要在命令rdiff-backup完成时访问命令的返回代码。

运行该命令可以输出一些统计数据:

rdiff-backup --print-statistics $source_dir $mirror_dir

这使:

--------------[ Session statistics ]--------------
StartTime 1478018786.00 (Tue Nov  1 16:46:26 2016)
EndTime 1478018802.13 (Tue Nov  1 16:46:42 2016)
ElapsedTime 16.13 (16.13 seconds)
SourceFiles 41812
SourceFileSize 16462964041 (15.3 GB)
MirrorFiles 41812
MirrorFileSize 16462964041 (15.3 GB)
NewFiles 1
NewFileSize 0 (0 bytes)
DeletedFiles 1
DeletedFileSize 0 (0 bytes)
ChangedFiles 2
ChangedSourceSize 0 (0 bytes)
ChangedMirrorSize 0 (0 bytes)
IncrementFiles 4
IncrementFileSize 64 (64 bytes)
TotalDestinationSizeChange 64 (64 bytes)
Errors 0
--------------------------------------------------

可以在镜像目录内的特殊 rdiff-backup-data 目录中的带时间戳的统计文件中找到相同的信息,文件名示例如下:

/mirror_dir/rdiff-backup-data/session_statistics.2016-11-01T16:46:26Z.data

或者,可以使用单独的命令以不同的格式列出增量:

rdiff-backup --list-increments mirror_dir

输出:

Found 43 increments:
    increments.2016-10-27T20:57:01+01:00.dir   Thu Oct 27 20:57:01 2016
    increments.2016-10-27T23:57:01+01:00.dir   Thu Oct 27 23:57:01 2016
    increments.2016-10-28T02:57:01+01:00.dir   Fri Oct 28 02:57:01 2016
    increments.2016-10-28T05:57:01+01:00.dir   Fri Oct 28 05:57:01 2016
    increments.2016-10-28T08:57:01+01:00.dir   Fri Oct 28 08:57:01 2016
    increments.2016-10-28T11:57:01+01:00.dir   Fri Oct 28 11:57:01 2016
...
    increments.2016-11-01T16:00:14Z.dir   Tue Nov  1 16:00:14 2016
Current mirror: Tue Nov  1 16:46:26 2016

我不知道是否应该找到最新的会话统计文件并从中查找字段的值IncrementFiles,或者使用该选项转移原始命令的输出--print-statistics,或者是否单独从版本的第一行中过滤出数字--list-increments更合理。

相关内容