#!/bin/ksh
#
# $Revision: 1.2 $ $Date: 2024-04-22 23:56:39-04 $
# $Source: /home/vogelke/projects/zfs/snapshot-inc/RCS/duration,v $
# $Host: furbag.my.domain $
# $UUID: 4ef5caa1-0084-49cc-905a-c9e563c5632c $
#
#<duration: see how long backups take.
#
# INPUT:
#   Apr 22 23:06:00 furbag 100.zsnap-inc: start
#   Apr 22 23:06:17 furbag 100.zsnap-inc: copied 564 files 13164 Kb
#   Apr 22 23:06:17 furbag 100.zsnap-inc: done
#   Apr 22 23:36:00 furbag 100.zsnap-inc: start
#   Apr 22 23:36:21 furbag 100.zsnap-inc: copied 153 files 5750 Kb
#   Apr 22 23:36:21 furbag 100.zsnap-inc: done
#
# DESIRED RESULTS:
#   START     END       SEC  #FILES      KB
#   23:06:00  23:06:17   17     564   13164
#   23:36:00  23:36:21   21     153    5750

export PATH=/usr/local/bin:/bin:/usr/bin
set -o nounset
tag=${0##*/}
umask 022
PS4='${tag}-${LINENO}: '

logmsg () { echo "$(date '+%F %T.%3N%:::z') $tag: $@"; }
die ()    { logmsg "FATAL: $@"; exit 1; }

bklog=/var/log/local6log
test -f "$bklog" || die "$bklog: not found"

cat $bklog |
    awk 'BEGIN { fmt = "%-8s  %-8s  %3s  %6s  %6s\n";
                 printf(fmt, "START","END", "SEC", "#FILES", "KB")
               }
      /start$/ { start = $3 }
      /copied/ { files = $7; size = $9; }
      /done$/  {
                 end = $3;
                 split(start, t, ":"); st = t[1]*3600 + t[2]*60 + t[3];
                 split(end, t, ":");   et = t[1]*3600 + t[2]*60 + t[3];
                 howlong = et - st;
                 printf(fmt, start, end, howlong, files, size);
               }
    '

exit 0
