#!/bin/bash set -eu source /etc/borg TEXTFILE_COLLECTOR_DIR=/var/lib/node_exporter/textfile_collector PROM_FILE=$TEXTFILE_COLLECTOR_DIR/backup.prom TMP_FILE=$PROM_FILE.$$ LIST=$(BORG_PASSPHRASE=$BORG_PASSPHRASE borg list $REPOSITORY |awk '{print $1}') COUNTER=0 mkdir -p $TEXTFILE_COLLECTOR_DIR for i in $LIST; do COUNTER=$((COUNTER+1)) done BORG_INFO=$(BORG_PASSPHRASE=$BORG_PASSPHRASE borg info "$REPOSITORY::$i") echo "backup_count $COUNTER" > $TMP_FILE echo "backup_files $(echo "$BORG_INFO" |grep "Number of files" |awk '{print $4}')" >> $TMP_FILE echo "backup_chunks_unique $(echo "$BORG_INFO" |grep "Chunk index" |awk '{print $3}')" >> $TMP_FILE echo "backup_chunks_total $(echo "$BORG_INFO" |grep "Chunk index" |awk '{print $4}')" >> $TMP_FILE function calc_bytes { NUM=$1 UNIT=$2 case "$UNIT" in kB) echo $NUM | awk '{ print $1 * 1024 }' ;; MB) echo $NUM | awk '{ print $1 * 1024 * 1024 }' ;; GB) echo $NUM | awk '{ print $1 * 1024 * 1024 * 1024 }' ;; TB) echo $NUM | awk '{ print $1 * 1024 * 1024 * 1024 * 1024 }' ;; esac } # byte size LAST_SIZE=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $3}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $4}')) LAST_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $5}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $6}')) LAST_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" |grep "This archive" |awk '{print $7}') $(echo "$BORG_INFO" |grep "This archive" |awk '{print $8}')) TOTAL_SIZE=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $3}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $4}')) TOTAL_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $5}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $6}')) TOTAL_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" |grep "All archives" |awk '{print $7}') $(echo "$BORG_INFO" |grep "All archives" |awk '{print $8}')) echo "backup_last_size $LAST_SIZE" >> $TMP_FILE echo "backup_last_size_compressed $LAST_SIZE_COMPRESSED" >> $TMP_FILE echo "backup_last_size_dedup $LAST_SIZE_DEDUP" >> $TMP_FILE echo "backup_total_size $TOTAL_SIZE" >> $TMP_FILE echo "backup_total_size_compressed $TOTAL_SIZE_COMPRESSED" >> $TMP_FILE echo "backup_total_size_dedup $TOTAL_SIZE_DEDUP" >> $TMP_FILE mv $TMP_FILE $PROM_FILE