#!/bin/bash
#
# ::copy1::
# ::copy2::
#
CMD=$(basename "$0")
CMDVER="1.11"
CMDSTR="$CMD v$CMDVER (2026-09-25)"
PARENT="kubackup-watch"

usage()
{
	echo "
usage: $CMD bckdir [-#]

# is the number of logfile lines tailed (default: $lines)

NOTE: this command should be called by parent $PARENT, you can
run alone only for debug
" >&2
	exit 1
}

# (MAIN)

lines="-6"

[ $# = 0 ] && usage

# bckdir is needed to check space usage/free on backup disk
#
bckdir=$1; shift

case ${1:-} in
 -[0-9]*)	lines=$1; shift ;;
esac

# process running kubackup
#
ps axuwwww | grep "/bin/bash /usr/sbin/kubackup-run" | grep -v grep | tail -1
echo

# last 3 lines of logfile
#
tail -3 /var/log/kubackup-run
echo

# space usage/free on backup disk
#
bckdir=$(fgrep ' backup dir ' /var/log/kubackup-run | tail -1 \
	| sed -e 's/.* backup dir //' -e 's/ .*//' -e 's/,.*//')

df -m $bckdir
echo

# time stats
#
du=$(df -m $bckdir | tail -1); set -- $du; du=$3
tstart_file=/tmp/$PARENT-start
tprev_file=/tmp/$PARENT-prev
# this is only a safeguard, those files should be reset by caller ($PARENT)
[ -f $tstart_file ] || echo "$du" >$tstart_file
[ -f $tprev_file ] || echo "$du" >$tprev_file

tstart=$(stat -c "%Y" $tstart_file)
tprev=$(stat -c "%Y" $tprev_file)
touch $tprev_file
now=$(stat -c "%Y" $tprev_file)
elapsed=$(($now - $tprev + 1))
elapsed_t=$(($now - $tstart + 1))

du_start=$(cat $tstart_file)
du_prev=$(cat $tprev_file)
du=$(($du+1))
du_t=$(($du - $du_start))
du_p=$(($du - $du_prev))

wmb_t=$(($du_t / $elapsed_t))
wmb_p=$(($du_p / $elapsed))

du_t=$((du_t / 1024))

echo "ELAPSED: $elapsed_t secs     USED: $du_t Gb  (media $wmb_t Mb/sec)     last $elapsed sec: $du_p Mb ($wmb_p Mb/sec)"
echo

echo "$du" >$tprev_file


# last $lines lines (see argument) of current mirror (rsync) process
#
last=$(ls -tr *.log | tail -1)
new=$(find "$last" -newer /var/log/kubackup-run)
[ "X$new" != "X" ] && {
	echo "--[ $last ]------------------------------------------------------------"
	echo
	tail -100 "$last" | col -b | tail $lines
}

exit 0
