sauvegardes/bin/listarchives

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