59 lines
2.3 KiB
Bash
Executable file
59 lines
2.3 KiB
Bash
Executable file
#!/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 }'
|
|
;;
|
|
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
|