59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
SCRIPT_NAME="$(basename "$0")"
|
|
|
|
roundn()
|
|
{
|
|
echo $(echo "($1+0.5)/1" | bc)
|
|
}
|
|
|
|
convert_duration()
|
|
{
|
|
local input="$1"
|
|
local minutes
|
|
if [[ $input =~ ([0-9]+)\ minutes ]]; then
|
|
minutes=${BASH_REMATCH[1]}
|
|
else
|
|
minutes=0
|
|
fi
|
|
local seconds
|
|
if [[ $input =~ ([0-9\.]+)\ seconds ]]; then
|
|
seconds=${BASH_REMATCH[1]}
|
|
seconds=$(roundn $seconds)
|
|
if [ $seconds -eq "60" ]; then
|
|
seconds=0
|
|
minutes=$(($minutes+1))
|
|
fi
|
|
else
|
|
seconds=0
|
|
fi
|
|
printf "00:%02d:%02d\n" ${minutes} ${seconds}
|
|
|
|
}
|
|
|
|
#
|
|
CONFIG="$1"
|
|
if [ -f "$CONFIG" ]; then
|
|
export BORG_PASSCOMMAND="cat /srv/borg/.borg-passphrase"
|
|
|
|
BORG_REPOS="/var/backups/borg/"
|
|
cd $BORG_REPOS
|
|
|
|
ARCHIVE_COUNT=0
|
|
REPO_COUNT=0
|
|
echo "ARCHIVE FILES Diff Duration"
|
|
echo "------------------------------------------------------------------------------------------------"
|
|
for ARCHIVE in $(borgmatic -c $CONFIG list | awk '{print$1}' | tail +2); do
|
|
#echo "== $ARCHIVE"
|
|
INFOS=$(borgmatic -c "$CONFIG" info --archive "$ARCHIVE")
|
|
#echo "$INFOS"
|
|
DURATION=$(echo "$INFOS" | grep Duration)
|
|
DURATION=$(convert_duration "${DURATION:10}")
|
|
DIFF_SIZE=$(echo "$INFOS" | grep "This archive" | awk '{ print $7" "$8}')
|
|
FILES=$(echo "$INFOS" | grep "Number of files" | awk '{ print $4 }')
|
|
|
|
printf "%-30s %10s %10s %s\n" "$ARCHIVE" "$FILES" "$DIFF_SIZE" "$DURATION"
|
|
done
|
|
echo "------------------------------------------------------------------------------------------------"
|
|
fi
|